TCP/IP协议碎碎念

简介:

整个TCP过程描述:

1)服务器默认的状态是LISTEN,客户端先向服务器发送一个SYS,表明自己要求链接,这时候客户端处于SYS_SENT状态;

2)服务器收到SYS,返回一个ACK,同时再补上一个SYS,这时候服务器端处于SYS_RECEIVE状态;

3)客户端收到了服务器返回的SYS,自己进化成ESTABLISHED状态,然后应答那个ACK,服务器接收到这个应答ACK,进化成ESTABLISHED状态。这样两个就算彻底连接了。

以上简称“三次握手”。


然后客户机与服务器可以传送数据,keepalive。


4)客户端向服务器发送一个FIN告诉服务器可以断开连接了,此时客户端处于FIN_WAIT 1状态。

5)服务器收到这个信息得知可以断开连接了,服务器处于CLOSE_WAIT状态,然后发送信息告诉客户端,服务器这时候处于LAST_ACK状态。

6)客户端收到服务器确认断开连接的信息,进化成FIN_WAIT 2状态,最后成为TIME_WAIT状态。等待一些时间已确保能收到服务器的应答。

以上过程简称“四次挥手”。


TCP的传输过程一共是十一个状态:LISTEN,SYS_SENT,SYS_RECEIVE,ESTABLISHED,FIN_WAIT 1,FIN_WAIT 2,CLOSE_WAIT,CLOSEING,LAST_ACK,TIME_WAIT,CLOSED.

CLOSEING:等待远端TCP 的连接终止请求确认

CLOSED:不在连接状态(其实是不存在的)


那么为什么TCP非要采取三次握手呢?

主要原因就是防止“由于网络阻塞,失效的信息又复活”的情况,举个例子:

A要给B传数据,开始的时候A传了一次请求,但是这个请求失效了,于是过了一段时间之后,A又传了一次请求,这个时候B收到了,两个开始快乐的交流。交流完毕,双方断开。但是这个时候那个失效的信息终于爬到了B端,B也会如期打开端口跟A建立连接,A一看B来张开怀抱,那么A也要张开怀抱,但是A原打算要的数据已经都得到了,这一次虽然建立了链接,已经没东西可以要了。那么这样的链接就是空连接,白白浪费带宽。


TCP VS UDP

先说相同点,他俩都可以全双工,而且都是端到端的传输层通信协议。

TCP一般用来进行文件传输,因为文件的传输要求真真切切,一丝一毫都不能少,所以每一次建立必须要求数据都是十全十美。

TCP只能一对一,不支持广播和多播,TCP是面向字节流的。传输速度慢。


UDP一般用来网络语音传输,建立为主,通信质量其次。

UDP虽然不可靠但是也会尽全力交付,他是面向报文的,应用层给UDP什么样的报文,UDP就传送什么样的报文。

UDP支持一对一,一对多,多对多(各种视频会议),传输速度快。


 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1746515



相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8天前
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
34 4
|
6月前
|
缓存 网络协议 Linux
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
|
8天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
消息中间件 网络协议 安全
TCP/IP 应用层常用协议
TCP/IP 应用层常用协议
311 0
|
负载均衡 网络协议 网络安全
TCP/IP:有层次的协议栈
TCP/IP:有层次的协议栈
182 0
TCP/IP:有层次的协议栈
|
网络协议
TCP/IP协议的介绍
TCP/IP协议是众多协议的统称,通过分层结构来管理。可分为七层模型或四层结构
|
网络协议 算法
【网络篇】第十二篇——TCP协议通讯流程
【网络篇】第十二篇——TCP协议通讯流程
【网络篇】第十二篇——TCP协议通讯流程
|
网络协议 网络架构
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
大家好,我是阿萨。昨天讲解了网络四层协议[TCP/IP协议族分为哪4层?]今天我们学习下IP 协议, TCP 协议和DNS 协议分别是干什么的。
222 0
IP协议, TCP协议 和DNS 服务分别是干什么的?
|
网络协议
TCP/IP协议族有哪些?
大家好,我是阿萨。昨天我们学习了[URI 和URL 的区别是什么?]了解了URI 和URL的区别。 学习HTTP, 绕不开TCP/IP,那么TCP/IP 协议族分为哪4层?
257 0
TCP/IP协议族有哪些?