互联网协议入门理解--前端角度整理

http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
https://baike.baidu.com/item/%E4%BA%92%E8%81%94%E7%BD%91%E5%8D%8F%E8%AE%AE/6492810?fr=aladdin

定义

  • 互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。
  • 互联网的实现,分成好几层,现在的模型分7层、4层的都有,但是现在我们是基于5层的内容去理解的。
  • 如下图是5层协议。最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做"应用层"(Application Layer),中间的三层(自下而上)分别是"链接层"(Link Layer)、“网络层”(Network Layer)和"传输层"(Transport Layer)。越下面的层,越靠近硬件;越上面的层,越靠近用户
    互联网协议入门理解--前端角度整理
  • 互联网的每一层,都定义了很多协议。这些协议的总称,就叫做"互联网协议"(Internet Protocol Suite)。它们是互联网的核心,下面主要就是介绍每一层的主要协议。

五层协议

实体层(最底层)

作用: 就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号

  • 用于连接电脑(光缆、电缆、双绞线、无线电波)

链接层

作用: 在实体层的基础上 确定了0和1的分组方式

  • 关于以太网电信号以“以太网”协议占据主导,以太网规定:一组电信号构成一个数据包
  • 数据包—帧[包含标头(head)、数据(data)]-最短64字节,最长1518字节,数据过长则要分割成多个帧
  • 标头(固定18字节)包含数据包的一些说明项(发送者、接受者、数据类型等)
  • 数据(最短46字节、最长1500字节)包含数据包的具体内容
  • MAC地址接入网络的设备,都得有“网卡”接口,数据包必须是一块网卡传送懂啊另一块网卡、网卡地址(就是数据包的发送地址和接收地址)(也叫MAC地址) [网卡地址==MAC地址]
  • 网卡都是独一无二的mac地址长度是48个二进制位,通常用12个十六进制数表示(例如:00-B0-D0-86-BB-F7)前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了
  • 广播通过广播向同一网络内计算机发送数据包,每台计算机自己判断是否为接收方**(不是同一个网络的采用路由方式发送)**
  • 有了数据包的定义、网卡的MAC地址、广播的发送方式,"链接层"就可以在多台计算机之间传送数据

网络层

作用: 引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"

  • 每台计算机两个地址(MAC地址(独一无二)、网络地址[是由管理员分配])
  • 网络地址帮助确定计算机所在子网络,MAC地址将数据包送达该自网络的目标网卡
  • IP协议 规定网络地址的协议叫做IP协议,他所定义的地址就是IP地址,目前采用IPv4版本(32个二进制位组成、分成四段十进制表示IP地址从0.0.0.0——255.255.255.255)[规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。]
  • IP地址前一部分代表网络、后一部分代表主机(同一子网络的电脑的网络部分是一样的
  • 判断是否同一网络下的必用用到’子网掩码[网络部分全是1,主机部分是0;例如11111111.11111111.11111111.00000000===255.255.255.0]’通过AND运算可以判断是否是一个子网下
  • IP协议作用:为每一台计算机分配IP地址、确定地址在同一个子网络
  • IP数据包 ip协议发送的数据叫做IP数据包,封装在以太网数据包的数据部分.IP数据包同电信号的数据包一样也是有标头(20-60字节版本、长度、IP信息等)和数据(最长65515字节IP数据包的具体内容)、超出1500需要分割发送
  • ARP协议,发送信息:不在同一个子网络,把数据包传送到两个子网络链接处的网关让网关处理,同一个子网络用ARP协议,得到对方的MAC地址()
  • 有了MAC地址和IP地址互联网上任意两台主机建立通信

传输层

作用: "传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流

  • 端口:确定是那个程序使用(0-65535之间的一个整数)、0-1023端口被系统占用、用户只能选大雨1023的端口
  • UDP协议:数据包中加入端口信息就是UDP数据包(标头:8个字节定义发出端口和接受端口)
  • TCP协议:udp可靠性较差,无法知道对方是否接受,tcp其实就是有确认机制的udp协议,TCP数据包长度没有限制,但是一般情况不会超过IP数据包的长度

应用层

作用: 就是规定应用程序的数据格式
互联网协议入门理解--前端角度整理