一、TCP/IP协议栈
1.TCP/IP介绍
TCP(Transmission Control Protocol)传输控制协议
IP(Internet Protocol)因特网互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议,叫TCP/IP只是因为其中使用并且最具代表性的是这两个协议。
2.TCP特性
1.工作在传输层
2.面向连接协议
3.全双工协议
4.半关闭
5.错误检查
6.将数据打包成段并排序
7.确认机制
8.数据恢复、重传
9.流量控制、滑动窗口
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口在某一时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,2^16=65536那么范围就在0~65535之间
序列号:表示本报文段所发送数据的第一个字节的编号,在TCP连接中所传送的字节流的每一个字节都会按顺序编号,由于序列号由32位表示,所以每2^32个字节就会出现序列号回绕,再次从0开始无限循环
确认号(ACK):表示接收方期望收到发送方下一个报文段的第一个字节数据的编号,也就是告诉发送方我希望你下次发送的数据的第一个字节数据的编号以此确认号,传输是否有问题?
数据偏移/首部长度:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。他指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,该字段的单位是32位(4个字节为计算单位)4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
URG(紧急位)表示本报文段中发送的数据是否包含紧急数据,后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
ACK(确认位)表示是否前面确认号字段是否有效,只有当ACK=1时,前面的确认号字段才有效,TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
PSH(急切位)提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接受后续数据腾出空间,如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
RST(重置位)如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。
SYN(同步位)在建立连接时使用,用来同步序号,当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接,SYN=1时说明这是一个请求建立连接或同意建立连接的报文。
FIN(断开位)表示通知对方本端要关闭连接了,标记数据是否发送完毕,如果FIN=1,即告诉对方:我的数据已经发送完毕,你可以断开连接了。这种带FIN标志的TCP报文段称为结束报文段
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据
校验和:提供额外的可靠性紧急指针(标记紧急数据在数据字段中的位置)
选项部分:其最大长度可根据TCP首部长度进行推算,TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节
3.tcp3次握手
当PC1想和PC2建立连接时,将连接信息写入报文
1.PC1发送一个建立连接的请求报文:报文的序号(seq=x)和同步位(SYN=1)
2.当PC2收到消息后,回复一个报文:报文的序号(seq=y)和确认号(ACK=x+1)注:这里的x+1是PC2希望你下一次发送x+1序号的报文给我。控制位(SYN=1):请求建立连接和确认位(ACK=1):同意建立连接
3.收到PC2同意建立连接的报文后,发送一个报文:报文的序号(x+1)和确认号(y+1)和确认位ACK=1封装进去
4.tcp4次挥手
当PC1想和PC2断开连接时,将断开连接信息写入报文
1.发送断开位FIN=1确认位ACK=1
2.PC2接收到报文后发送确认位ACK=1,但不是立马断开
3.PC2传输完数据后,再发送一条报文断开位FIN=1和确认位ACK=1
4.PC1接收到报文后再发送一条确认位ACK=1报文,并等待2倍的时间回复确认信息确认收到
二、UDP协议
1.udp特性
1.工作在传输层
2.提供不可靠的网络访问
3.非面向连接协议
4.有限的错误检查
5.传输性能高文章来源:https://www.toymoban.com/news/detail-851878.html
6.无数据恢复特性文章来源地址https://www.toymoban.com/news/detail-851878.html
到了这里,关于传输层(TCP/UDP)协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!