9

clipboard.png

传输层

"传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。

UDP协议:

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

  "标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以

  太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

clipboard.png

TCP协议:

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

  为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。

  如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

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

  TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的

  长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

应用层:

"应用层"的作用,就是规定应用程序的数据格式。

HTTP协议:

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。

    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

clipboard.png

  我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样

clipboard.png

  发送这个包,需要知道两个地址:

    * 对方的MAC地址

    * 对方的IP地址

  数据包的目标地址,实际上分成两种情况:

    场景 数据包地址

   同一个子网络 对方的MAC地址,对方的IP地址

  非同一个子网络 网关的MAC地址,对方的IP地址

  DNS协议可以帮助我们,将这个网址转换成IP地址。

  我们要判断,这个IP地址是不是在同一个子网络,这就要用到子网掩码。


zhouzhou
1.5k 声望76 粉丝

web前端