网络协议相关的知识和术语

目录

目标

计算机数据存储单位

七层模型

TCP/IP协议族

TCP/IP协议族传输数据时的封装过程

分用

MTU(最大传输单元)

路径MTU

IP(网际协议)

IP首部&网络字节序&首部长度

套接字(socket )和套接字对(socket pair)


目标

了解网络协议中相关的知识和术语,以此为前置条件,方便后期学习网络编程。本文介绍的相关知识大多来源于百度百科网页TCP/IP详解这本书,如有纰漏希望大家积极指正。


计算机数据存储单位

英文名 中文名 描述
bit 比特位、位、比特 计算机最小的存储单位,以0或1来表示比特位的值。比如:0001表示4个比特位。
Byte 字节 一个字节存储8个bit的数据,最大值是8个1,所以字节的大小范围是0到255。
KB 千字节 根据国际单位标准制,有1KB=1000字节,记作1000B,因为Windows系统的历史原因,也有1KB = 1024B的说法(实际上是1KiB=1024B)。
MB 兆字节 1MB=1000KB或1MB=1024KB,原因同KB。
GB 吉字节 1GB=1000MB或1GB=1024MB,原因同KB。
TB 太字节 1TB=1000GB或1TB=1024GB,原因同KB。

七层模型

  • 由国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型七层模型
  • 各个层的名称在翻译上可能会不同,如:传输层又叫运输层;网络层又叫互联网层;数据链路层又叫链路层、网络接口层。
应用层 网络服务与最终用户的一个接口。
协议有:HTTP、FTP、TFTP、SMTP、SNMP、DNS、TELNET、HTTPS、POP3、DHCP。
表示层 数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有:JPEG、ASCll、EBCDIC、加密格式等。
会话层 建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话。
传输层 定义传输数据的协议端口号,以及流控和差错校验。
协议有:TCP、UDP,数据包一旦离开网卡即进入网络传输层。
网络层 进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP、IGMP、IP(IPV4 IPV6)。
数据链路层 建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
物理层 建立、维护、断开物理连接。(由底层网络定义协议)

TCP/IP协议族

也叫TCP/IP协议簇、Internet协议族,是Internet的基础,也是当今最流行的组网形式。特别注意:

  • 协议族是一组不同层次上的多个协议的组合。
  • TCP是传输层的协议,IP是网络层的协议。TCP和IP只是TCP/IP协议族中的两种协议。
  • 应用层由用户进程处理业务细节,应用层以下又内核处理通信细节。
  • TCP/IP协议族通常被认为是一个四层协议系统,如下图所示:

网络协议相关的知识和术语_第1张图片


TCP/IP协议族传输数据时的封装过程

当应用程序使用TCP协议传输数据时,数据被送入协议栈,依次通过每一层知道数据变成了二进制串(比特流)。在这个过程中,每一层都会对数据增加首部信息(有时候还要增加尾部信息)。每一层传输的数据单元叫法不同:

  1. TCP报文段:TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。
  2. IP数据报:IP传给网络接口层的数据单元称作IP数据报(IP datagram)。
  3. 帧:通过以太网传输的比特流称作(Frame)或以太网帧

注意:UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作UDP数据报,且UDP的首部长为8字节。

网络协议相关的知识和术语_第2张图片


分用

分用是与封装相反的过程。指的是目标主机收到了以太网帧,数据开始从协议栈底部上升的过程。数据在上升的过程中会去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。

网络协议相关的知识和术语_第3张图片


MTU(最大传输单元)

MTU是链路层的概念,用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。MTU一般以字节为单位计算。偶尔也听别人说MTU一般是1500字节大小,这是不对的,因为不同的网络MTU也不同,比如:IEEE(电子电气工程师协会)公布的802.3标准的MTU是1492字节,以太网的MTU则是1500字节
如果IP层有一个数据报要传,而且数据报的长度大于链路层的MTU,这就需要IP层对数据进行分片,也就是把数据分成若干片,每片都小于MTU。

网络 MTU(单位:字节)
超通道 65535
16Mb/s令牌环(IBM) 17914
4Mb/s令牌环(IEEE 802.5) 4464
FDDI 4352
以太网 1500
IEEE 802.3/802.2 1492
X.2.5 576
点对点(低延时) 296

路径MTU

如果两台主机之间经过了多种网络才实现通信,不同网络链路层的MTU可能不同,在这些不同网络中最小的MTU,被称为路径MTU。两个主机的路由不同(A主机到比B主机的路由,和B主机到A主机的路由),会导致路径MTU就可能不是一个常数。


IP(网际协议)

IP也叫网际互连协议,是TCP/IP体系中的网络层协议。IP是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的数据报传送服务。

  • 不可靠:不能保证IP数据报能成功地到达目的地,仅提供最好的传输服务。可靠性必须由上层来提供,如:TCP。
  • 无连接:不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。

IP首部&网络字节序&首部长度

上面介绍了封装的概念,根据封装的过程图发现IP协议将TCP段转化成了IP数据报,IP数据报有IP首部。上述的封装流程图指出IP首部的大小是20字节,这里说的这只是普通的IP首部,如果含有选项字段,则IP首部长度要大于20字节。
首部长度指的是首部占32bit的数量,包括选项。首部长度是一个4比特字段,因此IP首部长度最大是60字节(二进制的1111转十进制是15,15✖32bit=60字节)。普通的IP数据报字段值是5,所以首部长度是20字节。
32bit值以下面的次序传输:首先是0~7bit,其次8~15bit,然后16~23 bit,最后是24~31 bit。这种传输次序称作big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序

网络协议相关的知识和术语_第4张图片

套接字(socket )和套接字对(socket pair)

一个TCP连接的套接字对,是一个定义该连接的两个端点的四元组:本地IP地址、本地TCP端口号、外地IP地址、外地TCP端口号。套接字对唯一标识一个网络上的每个TCP连接。

标识每个端点的两个值(IP地址和端口号)通常称为一个套接字

你可能感兴趣的:(Netty,网络协议,网络)