协议分层
TCP和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,通过面向连接、端到端和可靠的数据包发送但是传输效率低。UDP则不为IP提供可靠性、 流控或差错恢复功能但是传输效率高传输速度更快
TCP
传输控制协议
可靠的、面向连接的协议
传输效率低
UDP
用户数据报协议
不可靠的、无连接的服务
传输效率高
TCP报文段
TCP将若干个字节构成分组,叫报文段
TCP报文段封装在IP数据报中
TCP报文段的组成
如上图可以看到TCP头部最少为20个字节,后面的选项长度可以改变
TCP首部详解
源端口和目的端口:分别占16字节字节,写入源进程的端口号,和目的进程的端口号。
序号:为发送端每个字节进行编号,便于接受端正确重组占32个字节
**确认号:**确认发送端的信息占32个字节
部首长度:用它可以确认TCP部首数据结构的字节长度,一般情况下部首为20字节,但部首组大可以扩到60字节,占4字节
**保留:**占 6位 ,目前全都置零,用作以后使用。
控制位占6字节
URG:紧急位,1字节,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
ACK:确认位,1字节,只有当 ACK=1时确认号字段才有效。当 ACK=0 时,确认号无效
PSH:急迫位,1字节,接收方 TCP 收到推送比特置1的报文段,就尽快地交付给接收应用进程
RST:重置位,1字节,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),需要重新建立TCP连接
SYN:同步,1字节,TCP需要建立连接时将这个 值 置为 1
FIN:断开位,1字节,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设位1
窗口:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制
检验和:16字节,用来做差别控制,字段检验的范围包括首部和数据两部分,数据在发送和到达目的地时会进行校验和计算,若两次检验一致则说明数据是正确的,否则将认为该数据已破坏接收端将丢弃数据。
紧急指针:和URG配合使用,当URG=1时有效,占16字节
选项长度可变 , 最长可以达到 40 字节 , 当没有使用“选项”的时候,TCP首部的长度就是 20字节。
TCP三次握手
如下图
TCP四次挥手
如下图
常用TCP端口及协议
这边23号协议TELNET:也是用于远程登陆的,不过这个协议不安全一般用于公共场合
22 SSH (安全外壳协议) : 用于计算机之间的远程加密登录,一般用于私人场合