osi七层模型和TCP/IP五层模型

1、OSI七层模型结构

从低到高 物数网传会示用 (无数网传会使用)

  1. 物理层:负责传送数据帧,负责管理电脑通信设备和网络媒体之间的互通。主要指底层传送的物理设备,包含网卡、中继、路由等
  2. 数据链路层:负责网络寻址、错误侦测和改错。分为两个子层:逻辑链路控制(LLC)和介质访问控制(MAC)
  3. 网络层:数据路径选择和转发,将网络表头加至数据包,以形成报文。网络表头包含了网络数据,例如:互联网协议(ip)等。
  4. 传输层:把传输表头加至数据形成数据包。传输表头包含所使用的协议等发送信息。例如:传输控制协议(tcp)等。
  5. 会话层:负责在数据传输中设置和维护网络中两台设备之间的通信连接。
  6. 表示层:把数据转换为能与接收者的系统格式并适合传输的格式
  7. 应用层:提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、TELENT、SSH、SMTP、POP3、MYSQL等

2、TCP/IP 五层模型

从低到高 物数网传用

  1. 物理层:对应OSI七层模型的物理层(比特)
  2. 数据链路层:对应OSI七层模型的数据链路层(帧)
  3. interent层:对应OSI七层模型的网络层(报文)
  4. 传输层:对应OSI七层模型的传输层(段)
  5. 应用层:对应OSI七层模型中的会话层、表示层、应用层的集合(PDU)

3、TCP三次握手四次挥手

3.1 tcp三次握手

TCP建立链接需要经历三次握手

第一次:客户端主动向服务器发送访问请求,发送的数据包SYN=1,ACK=0,seq=x 表示请求建立链接,发出请求后状态由CLOSED切换为SYN-SENT。

第二次:服务器监听到客户端发出的数据包后,发送SYN=1,ACK=1,seq=y,ack=x+1的数据包,表示收到请求、同意建立链接,收到x的包并请求下一个包x+1,同时切换为SYN-RVD状态

第三次:客户端收到服务器发出的数据包后,发出新的数据包,ACK=1,seq=x+1,ack=y+1,表示收到服务端发送的包,开始建立链接,请求下一个包y+1。客户端切换为ESTAB-LISHED状态,表示已建立链接。服务端收到数据包后也切换为ESTAB-LISHED状态,表示已建立链接。

3.2 tcp四次挥手

第一次:客户端主动发起结束请求,发送数据包FIN=1,seq=u,发出结束请求,状态切换为FIN-WAIT1

第二次:服务端收到客户端发出的数据包后,发出数据包ACK=1,seq=v,ack=u+1,表示收到客户端发送的结束请求。服务端状态切换为CLOSE-WAIT,客户端收到数据包后状态切换为FIN-WAIT2

第三次:服务端收到客户端发出的数据包后,同时发送数据包FIN=1,ACK=1,seq=w,ack=u+1,表示同意结束请求并请求下一个数据包,状态切换为LAST-ACK

第四次:客户端收到从服务端发送的TCP数据报文,发送 ACK=1,seq=u+1,ack=w+1 数据包,准备断开链接,状态切换为TIME-WAIT,等待2msl后自动关闭。服务器收到客户端数据后关闭链接,同时两端状态切换为CLOSED。

4、TCP和UDP区别

相同:

工作在传输层

不同:

tcp特性

面向连接协议提供可靠的网络访问全双工协议半关闭错误检查将数据打包成段,排序确认机制数据恢复、重传流量控制、滑动窗口拥塞控制、慢启动和拥塞避免算法

udp特性

非面向连接协议提供不可靠的网络访问有限的错误检查传输性能高无数据恢复特性
©著作权归作者所有:来自51CTO博客作者哀木缇的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【JS基础入门】JavaScript原生Ajax请求与响应处理方式及JSON数据
  2. Tomcat日常维护笔记 - 运维小结
  3. JS跳转引发浏览器NS_BINDING_ABORTED
  4. 技术架构如何抓大放小
  5. 技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络
  6. web前端技巧分享:一场由SameSite字段引发的悲剧
  7. 一场由SameSite字段引发的悲剧
  8. Redis 6.0 稳定版发布,支持多线程 IO
  9. Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-matc

随机推荐

  1. 干货丨时序数据库DolphinDB横截面引擎教
  2. 一步步教你用 WebVR 实现虚拟现实游戏[每
  3. 用惰性加载优化 React 程序[每日前端夜话
  4. 聊聊我的 Java 自学之路
  5. 用JavaScript实现插入排序[每日前端夜话0
  6. Facebook的DevOps案例研究与相关工具[每
  7. Linux基础-14day-Linux系统服务管理
  8. Chrome 74 带来的新功能[每日前端夜话0x6
  9. 杀手级的TypeScript功能:const断言[每日前
  10. 13个帮你提高开发效率的现代CSS框架[每日