1.TCP(Transmission Control Protocol):传输控制协议
面向连接,提供全双工服务(数据同一时间双向传输),慢,稳定
特性: 工作在传输层
面向连接协议
全双工协议
半关闭,断开
错误检查(校验)
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,活动窗口
2. TCP 报文段(Segment):将若干个字节构成一个组 分装在IP数据报中)
端口号: 确定应用程序 一个端口对应一个程序(进程) 个数2^16=65536,范围(0--65535),前 1024知名 如http(80),ssh(20),telnet(23),tftp udp69
系统没打开一进程会配pid(系统中编号,方便管理),其次会分配与一个端口号
客户端端口号:随机的 服务端端口号:一般固定的
telnet+ip地址+端口号,检测服务软件是否正常(当禁ping可用)
序号:发送数据编号,由32位表示(每2^32个字节,会轮回从0开始,无限循环)
首部长度:TCP报文段首部长度
URG(紧急位)
ACK(确认位)
PSH(急切位)
RST(重置位)
SYN(同步位)
FIN(断开位)
窗口大小:调节每次发送的数据包量
(服务端与客户端之间,会根据情况自动调节个数)
3.TCP建立连接三次握手
TCP在传输真实数据前,要进行连接测试,如果测试通过,才会发送真实数据
(网络环境复杂为确保数据能够到达,2次不够,4次多余,3次刚好)
过程:
第一步:客户端主动发起请求报文,序号随机产生x,报文控制位SYN=1,代表请求建立连接
第二部:服务端收到请求,回复一个随即序号y, 生成一确认号(客户端请求报文序号+1,即x+1),
控制位SYN=1 ACK=1,代表同意建立连接
第三步:客户端收到同意报文,回复一个对方要求确认号x+1,生成一确认号(对方报文序号+1, 即y+1),控制位ACK=1,代表收到对方同意连接的请求
SYN=1 请求建立连接 SYN=1,ACK=1 同意和你连接
4. TCP断开连接四次挥手
客户端发送断开请求,服务端进入半关闭状态(收到请求,但我们数据可能没传完),后同意断开,客户端确认
有限状态机
CLOSED 没有任何连接状态
LISTEN 监听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认
5. UDP(User Datagram Protocol):用户数据报协议
无连接,直接传输数据,不管对面收没收到,快,不稳定
常用的UDP端口号及功能: