当前位置:网站首页>TCP与UDP
TCP与UDP
2022-06-12 23:33:00 【咕咚.萌西】
文章目录
TCP/IP分层结构
层次结构 | 功能 |
---|---|
应用层 | 应用程序可以使用各种各样的协议 |
传输层(TCP/UDP) | 确保发送数据可以到达目标主机,完成数据传输 |
网络层 | 填写数据包地址,选择数据传输路径 |
数据链路层 | 融合不同连接方式的的链路,屏蔽网络差异 |
物理层 | 由具体的连接方式决定,无线和有线,光纤 |
TCP/IP工作方式
发送端
应用层 | 编码后发送字符串数据 |
---|---|
传输层 | 将数据分包,加上标识头,序号等通用信息 |
网络层 | 加上传输地址,选择最佳传输路径 |
数据链路层 | 将数据封装并转换为二进制序列 |
物理层 | 将二进制序列转换为物理信号,比如光,无线电波 |
接收端
应用层 | 收到字符串,根据应用层协议进行解码 |
---|---|
传输层 | 根据附加信息进行数据组包,恢复原始应用层数据形态 |
网络层 | 解析二进制序列,恢复传输层数据形态 |
数据链路层 | 将二进制序列进行组装,恢复原始网络层数据形态 |
物理层 | 将物理信号转换为二进制序列 |
深入理解网络层(IP层)
ip寻址
- ip地址属于网络层地址,用于标识网络上的主机
ip路由控制
- 控制数据如何到达目标主机(需要通过哪些路由进行转发)
无连接
- 数据包根据ip地址在网络上传输
mac地址
- 数据链路层使用的硬件地址。mac地址和网络无关,出厂时写入到网络设备中,当主机在网络上收到一个数据帧时,首先检查里面的mac地址是否和当前主机一致,如果一致进行下一步处理,如果不一致直接丢弃。
ip地址和mac地址
- ip地址是动态的,不特定于某个硬件。
- ip地址是网络层使用的地址。
- mac地址是数据链路层使用的地址(用于确认目标网络中数据的主机)。
- 路由器中记录了本网络中主机ip于mac地址的映射关系。
IP路由控制
为了将数据发给目标主机,所有主机都维护了一张路由表,路由表记录了ip数据包下一步该发给哪个路由器。
路由表获取方式
- 手动创建路由表。
- 通过特定协议创建。
IP数据转发
- 尽力转发,不保证结果。
- 转发时通过附加信息检查合法性,出现异常不会进行重发。
- 以包为单位进行转发,不保证到达。
传输控制协议
TCP在协议上实现提供可靠数据传输
- TCP中不存在数据包的概念,实现了流式数据传输
- TCP内部有服务状态,能够精确的知道数据是否已经发送成功,是否已经被接收
- TCP在行为傻姑娘可以进行阻塞控制。
TCP 三次握手
下面是TCP的头部信息,通过头部信息可以更清楚的认识三次握手过程。
第一次握手
客户端创建了socket在调用connect之前一直处于CLOSED状态,当调用connect之后,客户端会发送一个SYN(SYN = 1,seq = J)报文,然后进入到SYN_SENT状态,服务器端收到后变为SYN_RECVD状态。
第二次握手
服务端对客户端做出应答(SYN = 1,ACK = 1,seq = K,ack = J + 1),
客户端在收到后转换为ESTABLISHED状态。
第三次握手
客户端向服务端做出应答(ACK = 1,ack = K + 1),服务端收到应答后由SYN_RECVD转换为ESTABLISHED状态。
TCP天生的缺陷(DDoS攻击)
- 客户端收到SYNC,ACK后,不再回复最后的ACK信息
- 这将导致服务端资源消耗,但是并不会进行实际通讯
- 当多个傀儡客户端同时对服务端请求连接,服务端资源将被耗尽。
TCP 四次挥手
第一次挥手
客户端向服务器发送一个FIN(FIN = 1,seq = J)报文,告诉服务器不会再发送数据了,然后切换到FIN_WAIT1状态。
第二次挥手
服务器接收到FIN(FIN = 1,seq = J)报文, 对客户端做出应答(ACK = 1,seq = K,ack = J + 1),告知客户端已经收到消息,此时服务器由ESTABLISH状态转换为WAIT_CLOSE状态,客户端收到应答后转换为FIN_WAIT2状态。
第三次挥手
服务器发送FIN报文(FIN = 1,ACK = 1,seq = L,ack = J + 1),进入到LAST_ACK状态。客户端接收到后由FIN_WAIT2状态进入TIME_WAIT状态。
第四次挥手
客户端收到来自服务器的连接释放(FIN)报文段后,会向服务器发送一个ACK应答报文段(ACK = 1, seq = J + 1, ack = L + 1),服务器收到后进入CLOSE状态,客户端等待2MSL后,也进入CLOSE状态。
UDP
特点:完全继承网络层的工作方式
- 无连接,直接指定IP地址和端口即可发送数据
- 监听固定端口,只要有数据统统接收
- 不管网络情况,只要是数据统统可发送
- 不关心数据是否到达
UDP使用场合:
- 对数据不敏感,需要实时性的场合
- 网络环境比较好的场合
- 需要深度定制协议的场合
边栏推荐
- OpenCV源代码编译
- Using baserecyclerviewadapterhelper to implement tree structure
- 同花顺股票账户开户安全吗
- Analysis report on business model innovation path and operation status of China's app store industry from 2022 to 2028
- 深度学习-神经网络:卷积的实现方法【直接法(精度没损失)、GEMM(矩阵乘法,精度没损失)、FFT(傅里叶变换,精度有损失)、Winograd(精度有损失)】
- Sequence maximum return
- The most widely used dynamic routing protocol: OSPF
- AWS lambda: how to store secrets to external APIs- AWS Lambda: How to store secret to external API?
- Preparing for the Blue Bridge Cup Day11__ Basic operation of serial port communication
- Dry goods sharing | BitSet application details
猜你喜欢
2022年R2移动式压力容器充装考试题及在线模拟考试
RT thread quick start - experience RT thread
For product managers, which of the two certificates, PMP and NPDP, is more authoritative?
Chapter 8 - shared model JUC
LeetCode 146. LRU cache
测试平台系列(97) 完善执行case部分
Preparing for the Blue Bridge Cup Day11__ Basic operation of serial port communication
Develop a web office suite from scratch (5): mouse hover over text
The programmer has worked for 7 years. At the age of 31, he has no choice but to deliver takeout. I really don't want you to go through his journey again
AWS lambda: how to store secrets to external APIs- AWS Lambda: How to store secret to external API?
随机推荐
House raiding 2
Avoid using asp Net core 3.0 to inject services for startup classes
So, what is the difference between e.target and e.currenttarget?
DETR(Detection with Transformers) 学习笔记
Analysis report on business model innovation path and operation status of China's app store industry from 2022 to 2028
Common rendering pipeline grooming
Ast, really fragrant
Dry goods sharing | BitSet application details
Lua loop statement
Use of map() function in JS
Gb28181 protocol -- alarm
Access static variables within class in swift
2022年G3锅炉水处理考题模拟考试平台操作
Function introduction and common terms of ZABBIX
csredis-in-asp. Net core theory practice - use examples
The carrying capacity of L2 level ADAS increased by more than 60% year-on-year in January, and domestic suppliers "emerged"
Anti aliasing / anti aliasing Technology
Preparing for the Blue Bridge Cup Day11__ Basic operation of serial port communication
It is meaningful to define genus, and D can use it to explain semantics
[literature translation - Part] revealing the structure of clinical EEG signals by self supervised learning (SSL and RP principles / data / preprocessing)