TCP/IP 协议

TanHaX
2022-05-02 / 0 评论 / 291 阅读 / 正在检测是否收录...

TCP/IP 是基于 TCP 和 IP 这两个网络传输协议的集合,按照OSI模型的不同层次,使用不同的传输协议进行分工合作。

TCP/IP协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/I P模型与OSI模型各层的对照关系:

Test

TCP/IP协议分层

  • 链路层:有时候也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或者其他任何传输媒介)的物理接口细节。
  • 网络层:有时也称为互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议,ICMP协议,以及IGMP协议。
  • 传输层:主要为两台主机上的应用程序提供端到端的通信,在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP相对安全稳定,但是UDP速度更快。
  • 应用层:负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:

    1. Telnet远程登陆
    2. FTP文件传输协议
    3. SMTP简单邮件传输协议
    4. SNMP简单网络管理协议
  • TCP/IP协议是一个面向连接的可靠的网络协议
     面向连接:一个逻辑概念,它需要自己与目标主机进行三次握手来建立连接才能完成通信。创建连接完成也会进行资源的分配。
  • 可靠的:连接时三次握手确认机制保证自己与目标主机的连接。四次分手机制来保证连接资源的释放。每次接收消息都会返回发送方ack确认包


数据链路层

  • 网络通信就是把有特定意义的数据通过物理介质传送给对方,物理层负责0、1比特流与物理设备电压高低、光的闪灭之间的互换。 数据链路层负责将0、1序列划分为数据帧从一个节点传输到临近的另一个节点,这些节点是通过MAC来唯一标识的(物理地址MAC,每一个主机会有一个独一无二的MAC地址)。
    Test

    1. 封装成帧: 把网络层数据报加头和尾,封装成帧,帧头中包括源MAC地址和目的MAC地址。
    2. 透明传输:零比特填充、转义字符。
    3. 靠传输: 在出错率很低的链路上很少用,但是无线链路WLAN会保证可靠传输。
    4. 检测(CRC):接收者检测错误,如果发现差错,丢弃该帧。


网络层

IP协议

 1. IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制,这被认为是上层协议:TCP或UDP要做的事情。

 2. IP地址目前有两个版本,分别是IPv4和IPv6,IPv4是一个32位的地址,常采用4个十进制数字表示。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。由于各类地址的分法不尽相同,以C类地址192.168.24.1为例,其中前24位就是网络地址,后8位就是主机地址。因此,如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址。

  • A类IP地址: 0.0.0.0~127.255.255.255
  • B类IP地址: 128.0.0.0~191.255.255.255
  • C类IP地址: 192.0.0.0~239.255.255.255
ARP和RARP协议

 ARP 是根据IP地址获取MAC地址的一种协议。
  1. ARP 首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,生成以太网数据包,它会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值对不存在,最终由以太网广播给子网内的所有主机,那么每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机。而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。

  2. RARP 使用与ARP相同的报头结构,作用与ARP相反。RARP用于将MAC地址转换为IP地址。其因为较限于IP地址的运用以及其他的一些缺点,因此渐为更新的BOOTP或DHCP所取代。

image.png


传输层

 传输层(Transport Layer)是 OSI 协议的第四层协议,是唯一负责总体的数据传输和数据控制传输层的一层协议。传输层提供端到端的交换数据机制,它不仅对会话层、表示层和应用层这高三层提供可靠的传输服务,还对网络层提供可靠的目的地站点信息。

 传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议 TCP 和用户数据报协议 UDP 。

TCP

 TCP是一种面向连接的端到端协议、可靠的、基于字节流的通信协议。TCP作为传输控制协议,可以为主机提供可靠的数据传输。TCP需要依赖网络协议为主机提供可用的传输路径。

UDP

 UDP是一种面向无连接的传输层协议,传输可靠性没有保证。可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单,容易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接受到重复数据的情况。

 传输层提供了应用进程之间的端到端连接,其作用如下:
  1. 为网络应用程序提供接口。
  2. 为端到端连接提供流量控制、差错控制、服务质量等管理服务。
  3. 多路复用、多路分解机制。

Test


应用层

 应用层是网络协议栈中最上的一层,也是网络通信的第一层,它提供了让两个终端设备进行信息交换的服务。它定义了信息交换的格式,然后把定义好的信息交给它下面一层的传输层去传输。应用层是由应用层的硬件和软件组成。硬件主要是终端设备,软件主要是应用层网络协议,如 SSH、HTTP、DNS、FTP 等。(由于这一层的内容过多,就不在这里过多讲述,后期会单独记录一篇,在下面推荐一篇来着 aws 比较全面的详解PDF)

image.png


总结

 1. 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据;
 2. 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发;
 3. 传输层:定义端口,确认主机上应用程序的身份,并将数据包交给对应的应用程序;
 4. 应用层:定义数据格式,并按照对应的格式解读数据。

注:本篇文章来自本人的学习总结和记录,如有错点和不全欢迎各位大佬指点。


3

打赏

评论 (0)

取消