当前位置:网站首页>传输层协议
传输层协议
2022-07-19 05:16:00 【1701y】
目录
TCP协议
TCP
TCP是面向连接,可靠的,进程到进程通信的协议 TCP提供全双工协议
TCP报文段
目标端口号:接收端进程的端口号。接都断收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程。
序号:发送端为每个字节进行编号,便于接收端正确重组。 当TCP从进程接收数据字节时,把他们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据到达 目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性。
确定号:对发送端的确认信息 接收端响应消息时将会用它来告诉发送端这个序号之前数据段都已经收到,如确认号是x, 就是表示钱X-1个数据段都已经收到 Ack序号
首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首都是20字节,但首部长度最大可以 扩展为60字节
校验和:用来做差错控制。在发送TCP数据段时,由发送端计算校验和,当到达目的地时又进行一次校验和计算。 若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据。
紧急指针:和 URG配合使用,当 URG=1 时有效。
选项:在 TCP首部可以有多达 40 字节的可选信息。例如,最大报文段长度MSS(Maximum Segment Size) MSS告诉对方 TCP:“我的缓存所能接收到报文段的数据字段的最大长度是MSS个字节。
控制位
控制位: URG:紧急位。紧急指针有效位。 ACK:确认位。只有当ACK=1时,确认序列号字段才有效:当ACK=0时,确认号字段无效 PSH:急迫位。标志位为1时,要求接收方尽快蒋数据段送法应用层。 RST:重置位。当RST值为1时,通知重新建立TCP连接。 SYN:同步(连接)位。同步序号位。TCP需要建立连接时将这个值设为1. FIN:断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1.
TCP建立连接三次握手
TCP建立连接的过程称为三次握手 握手之前主动打开连接的客户端结束CLOSED(没有任何连接的状态)阶段,被动打开的服务器端也结束CLOSED阶段 进入LISTEN(侦听来自远方TCP端口的连接请求)阶段 1.PC1发送SYN报文(Seq=x SYN=1) 随后PC1进入SYN-SENT(发送链接后等待匹配的连接请求)阶段
2.PC2接收到PC1的报文后结束LISTEN,PC2发送SYN+ACK报文 (seq=y Ack=x+1 SYN=1 ACK=1),随后进入SYN-RCVD(在收到和发送一个连接请求后等待确认)阶段
3.PC1收到PC2确定收到数据的报文后,结束SYN-SENT阶段 PC1发送ACK报文(Seq=x+1,Ack=y+1 ACK=1)随后PC1进入ESTABLISHED(代表一个打开的连接,可以传输数据)阶段
TCP断开连接的四次挥手
1.PC1发送FIN/ACK(FIN=1,ACK=1 Seq=u) 随后客户端进入FIN-WAIT-1(等待远程TCP的连接中断请求)状态 半关闭状态。并且停止在客户端到服务器端方向上发送数据,但是客户端能接受从服务器端传输过来的数据 2.PC2接收到PC1发送的报文后,结束ESTABLISHED状态 进入CLOSE-WAIT阶段(半关闭装状态) PC2发送ACK报文(ACK=1 Seq=v Ack=u+1) PC1收到PC2发出的报文后,确定了PC2收到了PC1发出的解除连接请求, 结束FIN-WAIT-1阶段 进入FIN-WAIT-2(从远程TCP等待连接中断请求)阶段
3.PC2发送FIN/ACK报文(FIN=1,ACK=1 Seq=w Ack=u+1)随后进入 LAST-ACK(等待中断请求的确认)阶段 并停止在服务器端到客户端的方向上发送数据,但是服务器端还可以接收从客户端传输过来的数据
4.PC1收到PC2发出的报文,结束FIN-WAIT-2阶段进入TIME-WAIT(等待足够的时间以确保远程TCP接收 到连接中断请求确认)状态 PC1发送ACK报文(ACK=1 Seq=u+1 Ack=w+1)随后PC1在TIME-WAIT阶段等待2MSL PC2收到PC1发出的报文后结束LAST-ACK阶段,进入CLOSED阶段 PC1等待万2MSL后,世界TIME-WAIT阶段,进入CLOSED阶段(没有任何连接的状态。)
TCP端口号:
FTP 21 FTP服务器所开放的控制端口 TELNET 23 用于远程登录,可以远程控制管理目标计算机 SMTP 25 SMTP服务器开放的端口,用于发送邮件 HTTP 80 超文本传输协议 POP3 110 用于邮件的接收 DHCP 67 68 DNS 53 FTP 20端口数据传输 HTTPS 443 ssh 22
UDP协议
UDP协议是无连接、不保证可靠性的传输协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,他的可靠性由上层数据协议来保障。传输数据速度更快,效率更高,花费的开销小。
UDP报文的首部格式
源端口号 目标端口号 UDP长度:用来指出UDP的总长度,为首部加上数据 UDP检验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制。
UDP协议端口号
TFTP 69 简单文件传输协议 RPC 111 远程过程调用 NTP 123 网络时间协议(同步网络时间)
边栏推荐
- 育才项目运行流程
- Leetcode:905. Sort array by parity [double pointer + implementation in three languages]
- 关于基础资源信息查询和关键数据的查看
- kvm虚拟机迁移到openstack环境,提示InvalidDiskInfo Disk info file is invalid qemu-img fai
- The third "intelligence Cup" National College Students' IT skills competition (solution to group B of the preliminary competition)
- iptables examples
- Leetcode:13. Roman numeral to integer [key value pair mapping]
- LVM和磁盘配额
- 网络抓包了解TCP三次握手的建立过程
- suse 11 进入单用户
猜你喜欢
随机推荐
redhat 7更换yum源
DHCP第一次静态实验
我的2020年线上的夏令营总结
南京大学计算方法(数值分析)期末复习笔记
Migrate KVM virtual machine to openstack environment, and prompt invaliddiskinfo disk info file is invalid QEMU img FAI
ZABBIX automatically discovers and monitors CEPH OSD
openstack queens创建固定IP虚拟机
Panzer_Jack 的 个人博客成立日
Software engineering final review mind map
网络安全学习(十四)IP协议
Regular Expression
服务器硬件及RAID配置与实战
access-list vs ip access-list
【PTA】 7-19 支票面额 (15 分)
黑马程序员网络通信三要素
Leetcode:905. Sort array by parity [double pointer + implementation in three languages]
The difference between abstract classes and interfaces
栈模拟队列
iptables examples
Cryptology