Contents
  1. 1. 应用层(Application Layer)
  2. 2. 传输层(Transport Layer)
  3. 3. 网络层(Network Layer)
    1. 3.1. IP协议
    2. 3.2. ICMP
    3. 3.3. IP数据包
    4. 3.4. ARP协议
    5. 3.5. NAT
  4. 4. 数据连接层(数据链路层)(Data Link Layer)
    1. 4.1. 以太网
    2. 4.2. MAC地址
    3. 4.3. 广播
  5. 5. 物理层(Physical Layer)
  6. 6. 数据处理流程
  7. 7. 参考链接

互联网协议分为好几层,每一层都有自己的功能定位,一般分为5层比较容易理解。

应用层(Application Layer)

应用层直接面向用户,规定了应用程序的数据格式,数据格式放入UDP或TCP的Data中,文件传输,电子邮件,文件服务,虚拟终端。常见协议:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet;

传输层(Transport Layer)

提供端对端的接口;有了mac地址和IP协议,两台机器就可以建立连接了,但是每台主机上有很多不同的应用程序,需要建立端口到端口的通信,Unix系统把“主机+端口”称为Socket,基于Socket,可以产生TCP和UDP协议。对应协议:TCP,UDP;

“端口”是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。

网络层(Network Layer)

为数据包选择路由,由于数据链路层的以太网协议依靠mac地址在网络上以广播的形式发送数据包,但是总不能在全世界范围内广播吧,网络层的主要任务就是为了选择合适的路由和交换节点,使传输层传下来的分组信息能够准确无误的找到目的地址,并交付给相应的传输层。即完成网络寻址功能。对应协议:IP,ICMP,RIP,OSPF,BGP,IGMP;

IP协议

IP协议的两个主要作用,为每台计算机分配IP地址;确定哪些地址在同一个子网;IP协议在以太网的数据内部,如果IP数据包超过1500个字节需要分开发送;

ICMP

主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。
IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信;

IP数据包

根据IP协议发送的数据,就叫做IP数据包,其中必定包括IP地址信息;

ARP协议

用来在子网内从IP地址得到MAC地址,不在同一个子网需要交给网关处理;

NAT

NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术;

  1. 源NAT(Source NAT,SNAT):修改数据包的源地址。
  2. 目的NAT(Destination NAT,DNAT):修改数据包的目的地址。

连接层用来解读0和1的电信号,确定0/1的分组方式。

在两个网络实体之间提供数据链路连接的创建、维持和释放管理。构成数据链路数据单元(frame:数据帧或讯框),并对帧定界、同步、收发顺序的控制。传输过程中的网络流量控制、差错检测和差错控制等方面。在物理层的基础上向网络层提供服务,其最基本的职责是将源自网络层的数据可靠的传输到相邻节点的目标网络层。主要以以太网为主。

以太网

以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。

“标头”的长度,固定为18字节。”数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

MAC地址

以太网数据包的”标头”,包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢?

以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

广播

首先,一块网卡怎么会知道另一块网卡的MAC地址?

回答是有一种ARP协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送。

其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?

回答是以太网采用了一种很”原始”的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

物理层(Physical Layer)

就是实际上电脑间连接的介质,比如网线、光纤、电缆等,主要规定了网络的电气特性,负责传输二进制形式的数据。对应协议:ISO2110,IEEE802,IEEE802.2;

数据处理流程

下图以用户 a 向用户 b 发送邮件为例子:

数据处理流程

参考链接

  1. https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82
  2. https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82
  3. https://blog.csdn.net/zhshulin/article/details/62888061
  4. https://juejin.im/post/5a069b6d51882509e5432656
  5. http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
Contents
  1. 1. 应用层(Application Layer)
  2. 2. 传输层(Transport Layer)
  3. 3. 网络层(Network Layer)
    1. 3.1. IP协议
    2. 3.2. ICMP
    3. 3.3. IP数据包
    4. 3.4. ARP协议
    5. 3.5. NAT
  4. 4. 数据连接层(数据链路层)(Data Link Layer)
    1. 4.1. 以太网
    2. 4.2. MAC地址
    3. 4.3. 广播
  5. 5. 物理层(Physical Layer)
  6. 6. 数据处理流程
  7. 7. 参考链接