文章目录
传输层的协议
1.TCP/IP协议组的传输层协议
TCP:(transmission control protocol)
传输控制协议
TCP是面向连接网络协议,是指通信双方直接进行通信之前需要先建立连接。等数据发送结束后,双方会进行断开连接。TCP提供全双工服务,数据可在同一时间相互传出,每个tcp都有发送缓存和接收缓存,用来临时存储数据,tcp具有重传机制,如果对方端收到的数据不完整或者出错,tcp会进行重传
UDP (user datagram protocol)
用户数据报协议
UDP是一个无需连接的传输协议,发送端不会关心对方端是否收到数据,数据出现出错,未收到等问题,也不会进行重传,但是udp传输数据速度更快,效率更高
2. TCP报文段
tcp报文段
tcp将若干个字节构成一个分组,叫报文段(segment)
tcp报文段封装在IP数据包中
1.源端口(16):顾名思义就是发送方进程的端口号
2.目标端口号(16):接收方进程的端口号,接收端收到数据后会根据这个端口来把数据发送给对应的应用程序
3.序号(32):发送端会为每个字节进行编号,便于进行正确的重组
确认号(32):用来确认对方端有没有收到数据,如确认号是x,就表示x+1已经收到
首部长度(4):确定TCP首部数据结构的字节长度,一般超过40字节
保留位(6):为了防止特殊情况 预留6位的一个保留位
控制位:指的是tcp在连接是会出现的各种特殊状态
1.URG:紧急位 urg=1时,提醒接收端该数据包中有一部分是紧急数据
2.ACK:确认位 ack=1时,表示对方有没有接收到数据 ack=0的话就是对方没有收到数据
3.PSH:急迫位:psh=1时 提醒接受端这一整个数据包都是紧急的 提醒他优先处理 跟第一个紧急位不一样的是,紧急位是该数据包里面部分字节是紧急的 ,而psh是一整个数据都是紧急的
4.RST:重置位:rst=1时, 提醒双方需要进行出现建立tcp的连接
5.SYN:同步位: SYN=1时,同步序列号,tcp需要进行连接时变为1
6.PIN:断开位:pin=1时,表示数据传输完成之后提出断开连接的一方变为1
窗口大小(16):指的是本地可接收数据段的数目。这个值的大小是可以变的,网络通畅会把窗口放大 进多个传输,网络不通畅的情况下会把窗口变小,
校验和(16): 用来差错控制,数据段在发送和接收的时候都会进行校验,如果结果一样则会正常传输
紧急指针(16):是配合紧急位使用的,紧急位只能提醒对方端改数据中有部分字节紧急,却不会告诉是那个季节,紧急指针就是配合紧急位指出具体哪些字节是紧急的
选项:在tcp首部可以有多达40字节的可选信息
3.TCP建立连接的过程
TCP建立的过程我们叫做三次握手 为什么叫三次握手
tcp是面向连接,就是说发送数据的时候都需要先进行连接,这个建立连接的过程分三给步骤,就叫做三次握手
① 当客户端向服务器发送请求连接的报文时:seq(序列号)=x
syn=1 表示发送请求连接
② 服务器端收到客户端发来的请求报文后,同意建立,则向客户端发送确认报文:
seq序列号=y(服务器端也会产生一个序列号y,和客户端的序列号没关系)
Ack确认号 x=1(seq序列号=1,表示同意对方连接请求)
ACK=1(表示这是条确认请求)
SYN=1(同时也发送一个连接请求给客户端)
③ 客户端进程收到服务器进程的确认后,并同意服务器的确认,,然后连接成功建立:
seq序列号=x+1(这时客户端的序列号为1)
Ack=1 (表示确认收到服务器的连接请求)
ACK=1表示确认报文
3.2 TCP常用端口号及其功能
端口 | 协议 | 说明 |
---|---|---|
21 | FTP | fip服务器所开放的控制端口 |
23 | TELNET | 用于远程登录,可以远程控制管理目标计算机 |
25 | SMTP | smtp服务器开放的端口,用于发送邮件 |
80 | HTTP | 超文本传输协议,明文传输 |
110 | POP3 | 用于邮件的接收 |
443 | HTTPS | 超文本传输协议,密文传输 |
4.UDP协议
udp协议是一个无连接,高效的传输协议 花费的开销小UDP报文的首部格式
4.1 UDP报文的首部格式
UDP长度:用来指出udp的总长度 ,为首部加上数据
校验和:用来完成对udp数据的差错检验,它是udp协议提供的唯一的可靠机制
4.2 UDP常用端口号及其功能
端口 | 协议 | 说明 |
---|---|---|
69 | TFTP | 简单文件传输协议 |
111 | RPC | 远程过程调用 |
123 | NTP | 网络时间协议 |
5.总结
tcp和udp 的区别 tcp是一个先建立连接可靠的传输协议,具有重传机制,比较安全可靠
udp是无需连接 直接传输的协议 高效但不是很可靠 它不会管对方端是否收到数据
TCP只是建立一个可靠性的通道,但是数据发送接收还是靠的是IP
5.总结
tcp和udp 的区别 tcp是一个先建立连接可靠的传输协议,具有重传机制,比较安全可靠
udp是无需连接 直接传输的协议 高效但不是很可靠 它不会管对方端是否收到数据
TCP只是建立一个可靠性的通道,但是数据发送接收还是靠的是IP
TCP的三次握手和四次挥手都是为了传输数据的可靠性