互联网协议入门 : 底层 ----- 用户

互联网的每一层,都定义了很多协议。这些协议的总称,就叫做"互联网协议"(Internet Protocol Suite)。它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议。

三、链接层

3.2 以太网协议

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

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

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

 

3.3 MAC地址

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

  以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。

  网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

 

3.4 广播

  一块网卡怎么会知道另一块网卡的MAC地址?(ARP协议,留到后面介绍)

  以太网数据包必须知道接收方的MAC地址,然后才能发送,以太网向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

 

四、网络层

4.1 网络层的由来

  计算机的网络地址:

    1:两台计算机不在同一个子网络,广播是传不过去的;

    2:区分哪些MAC地址属于同一个子网络,如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。

    3:MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。

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

    5:计算机有了两种地址,一种是MAC地址,另一种是网络地址,两种地址之间没有任何联系;

    6:网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡

 

4.2 IP协议

  1:规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。目前,广泛采用的是IP协议第四版,简称IPv4

  2:这个版本规定,网络地址由32个二进制位组成,每一台计算机,都会分配到一个IP地址。分成两个部分,前一部分代表网络,后一部分代表主机。

    例子:   

       比如,IP地址172.16.254.1,这是一个32位的地址,假定它的网络部分是前24位(172.16.254),

       那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,

       也就是说172.16.254.2应该与172.16.254.1处在同一个子网络。

  3:单单从IP地址,我们无法判断网络部分,以172.16.254.1为例,它的网络部分,到底是前24位,还是前16位,从IP地址上是看不出来的

  4:“子网掩码”:一个32位二进制数字,它的网络部分全部为1,主机部分全部为0;

    知道"子网掩码",我们就能判断,任意两个IP地址是否处在同一个子网络。

    方法:是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),

    然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

 

4.3 IP数据包

  1:根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。

  2:把IP数据包直接放进以太网数据包的"数据"部分,IP数据包也分为"标头"和"数据"两个部分。

  3:它放进以太网数据包后,以太网数据包就变成了下面这样。

   4:太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了;

 

4.4 ARP协议 (获取mac地址)

  1:IP数据包是放在以太网数据包里发送的,必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。

  2:对方的IP地址是已知的(后文会解释),但是我们不知道它的MAC地址。获取方法以下:

    情况1:两台主机不在同一个子网络,把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。

    情况2:用ARP协议,得到对方的MAC地址,ARP协议也是发出一个数据包,包含它所要查询主机的IP地址,它所在子网络的每一台主机,

         都会收到这个数据包,取出IP地址,与自身的IP比较。相同,向对方报告自己的MAC地址,否则就丢弃这个包。

 

五、传输层

  有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

  1:问题:一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,

    你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?

  2:“端口”解决这个问题,每一个进程都有自己的端口,每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。

  3:"传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。

    只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。

 

5.2 UDP协议 

  数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。

  UDP数据包,也是由"标头"和"数据"两部分组成。

  整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

 

5.3 TCP协议

  1:UDP协议:的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

  2:TCP协议:它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

    因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

 

转载于:https://www.cnblogs.com/vs1435/p/6908811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值