OSI七层协议、TCP/IP四层协议

Posted by JimWang on 2021-02-08

OSI七层协议、TCP/IP四层协议

OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
应用层(Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层(Presentation) 应用层 Telnet, Rlogin, SNMP, Gopher
会话层(Session) 应用层 SMTP, DNS
传输层(Transport) 传输层 TCP, UDP
网络层(Network) 网络层 IP, ICMP, RARP, AKP, UUCP
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,ARP
物理层(Physical) 数据链路层 IEEE 802.1A, IEEE 802.2到IEEE 802.11

OSI七层协议各层的作用

  • 物理层
    • 定义物理设备标准,如网线的接口类型、光纤的接口类型、传输介质的传输率等
    • 在这一层数据单位是比特
  • 数据链路层
    • 建立相邻节点之间的数据链路。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
    • 在这一层数据单位是帧
  • 网络层
    • 在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。
    • 将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址
    • IP是第3层问题的一部分,此外还有一些路由协议和地 址解析协议(ARP)。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。
    • 在这一层数据单位为数据包
  • 传输层
    • 负责获取所有信息,为上层提供端到端的透明、可靠的数据传输服务
    • 这一层的数据单位也叫数据包,但是如果谈论TCP时,又称数据为段,在UDP时,又称为数据报
  • 会话层
    • 通过传输层建立数据传输的通路,在系统之间发起会话
    • 从这层开始,数据统称为报文
  • 表示层
    • 将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法
  • 应用层
    • 为操作系统提供访问网络服务的接口

TCP/IP协议

TPC/IP协议共有四层:应用层、传输层、网络层、数据链路层。

每一层都会在首部加上信息。而在接收方会拆包。

image-20210208213636503

  • 数据链路层
    • 实现网卡接口的网络驱动,以处理数据在以太网等物理媒介上的传输
    • 协议:ARP和RARP地址解析协议。实现了IP地址和物理地址(MAC地址)之间的转换。也就是查IP-MAC地址映射表,当查不到的时候,就发送ARP协议广播报,如果收到广播报的就是这个ip,则会返回自己的mac地址。
  • 网络层
    • 网络有局域网LAN和广域网WAN。后者通常需要使用众多分级的路由器连接分散的主机或者LAN,即通信的两台主机不是直接链接的,需要通过多个路由器才能抵达
    • 协议:
      • IP协议,根据数据包的目的IP地址来决定如何投递数据包,如果不能直接给目标主机,则选择一个合适的下一跳路由器
      • ICMP协议:是IP协议的补充,用于检测网络的连接状态。因为IP协议是不可靠的,不保证数据被送达。当传送IP数据包发生错误,比如不可达等,ICMP协议就会把错误信息封包,传送给主机
  • 传输层
    • 提供程序间的通信。功能包括:格式化数据流、提供可靠传输。
    • 协议:
      • TCP,可靠的、面对连接的、基于流的服务。
      • UDP,不可靠的、无连接的基于数据报的服务
  • 应用层
    • 向用户提供应用

TCP和UDP的区别

TCP UDP
可靠性 可靠 不可靠
连接性 面向连接 无连接
报文 面向字节流 面向报文
效率 传输效率低 传输效率高
双工性 全双工 一对一、一对多、多对一、多对多
流量控制 滑动窗口
拥塞控制 慢开始、拥塞避免、快重传、快恢复
传输速度
应用场景 对效率要求低,对准确性要求高或者要求有连接的场景 对效率要求高,对准确率要求低
1
2
3
4
5
6
7
8
9
10
11
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

浏览网页使用的是TCP协议