概述
2021-11-24
协议 #
- 计算机会执行各种协议,一系列相关的协议的集合称为一个协议族。
- 指定一个协议族中的各种协议之间的相互关系并划分需要完成任务的设计,称为协议族的体系结构或参考模型。
分层 #
介绍 | |
---|---|
应用层 | Telnet、FTP和e-mail等 |
运输层 | TCP和UDP |
网络层 | IP、ICMP和IGMP |
链路层 | 设备驱动程序和接口卡 |
- 链路层:也叫数据链路层或者网络接口层,包括操作系统中的设备驱动程序和计算机中对应的网络接口卡(网卡),他们一起处理与电缆(或其他传输媒介)的物理接口细节。
- 网络层:处理分组在网络中的活动。
- 运输层:未两台主机上的应用程序提供端到端的通信。TCP的工作是把应用程序交给他的数据分为合适的小块交给下面的网络层,确认接收到的文组,设置发送最后确认分组的超时时钟等。UDP把称作数据报的分组从一台主机发送到另一台主机,不保证该数据报能到达另一端。
- 应用层负责处理特定的应用程序细节。
- 一般来应用层的程序通常是一个用户进程,而下三层一般在操作系统内核中执行。
- 多个网络通过IP路由器(IP Router)进行连接。从历史来说,路由器也叫做网关,但现在网关这个术语只用来表示应用层网关:一个连接两种不同协议族的进程。
- 网桥是在链路层上对网络进行互联,而路由器则是在网络层上对网络进行互联。网桥使得多个局域网组合在一起,这样对上层来说就好像是一个局域网。
- TCP/IP的每层都是用地址和标识符,用于区分不同协议或相同协议不同关联。链路层接入网络通常使用48位地址;IPv4使用32位地址,IPv6使用128位地址。TCP和UDP传输使用一系列的不同的端口号。
互联网的地址 #
通常采用点分十进制数地址。
分类 #
- A类地址:第一位为0(二进制),网络号长度8位,主机号长度24位。范围0.0.0.0~127.255.255.255。127是一个保留地址。
- B类地址:前两位为10(二进制),网络号长度16位,主机号长度16位。范围128.0.0.0~191.255.255.255。
- C类地址:前三位为110(二进制),网络号长度24位,主机号长度8位。范围192.0.0.0~223.255.255.255。
- D类地址:前四位为1110(二进制),范围224.0.0.0~239.255.255.255,D类地址被保留支持组播。
- E类地址:前四位为1111,范围从240.0.0.0~255.255.255.255。E类不用。
专用地址 #
- 10.0.0.0~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
- 0.0.0.0/8:本地网络中的主机,仅作为源IP使用。
- 127.0.0.1/8:回环地址,通常只用127.0.0.1。
- 255.255.255.255/32:本地网络(受限)的广播地址。
IPv6 #
- IPv6地址的长度是128位,采用16进制表示,每四个16进制数用一个冒号分隔(四个16进制数也称为一个块或字段),一个IPv6地址包含8个块。如
5f05:2000:80ad:5800:0058:0800:2023:1d71
。 - IPv6地址简化写法
- 前导的0必须压缩,如
5f05:2000:80ad:5800:58:800:2023:1d71
。 - 全零的块可以省略用符号::表示。
::
只能用于影响最大的地方(压缩最多的0)。如果多个块中包含等长度的0,则顺序靠前的块被替换为::
。如0:0:0:0:0:0:0:1
可以简写为::1
;2001:0db8:0:0:0:0:0:2
可以简写为2001:db8:2
。一个IPv6地址中的::
只可以出现一次。 - IPv4映射的IPv6地址格式中 紧接着IPv4部分的地址块的值为ffff,地址的其余部分使用点分四组格式。如IPv6地址
::ffff:10.0.0.1
可以表示为IPv4地址10.0.0.1。 - a到f的16进制用小写表示。
- 前导的0必须压缩,如
- 在某些情况下,IPv6地址中的冒号可能和其他分隔符混淆(如URL),这种情况下可以使用
[
和]
来包裹IPv6地址。
广播地址 #
- 在每个IPv4子网中,一个特殊地址被保留作为子网广播地址。子网广播地址通过将IPv4地址中的网络/子网部分设置为适当值,以及主机部分的所有地址设置为1而形成。
- 子网广播地址的计算方式为:对子网掩码取反,并于子网中任意的计算机的地址(或者网络/子网前缀)进行按位或运算(两个输入为任意一个为1,则结果为1)。
- 子网128.32.1.0/24的子网广播地址是128.32.1.255,使用这种地址作为目的地址的数据报,也被称为定向广播,定向广播至今在Internet中被禁用。
- 255.255.255.255的IP地址被保留为本地网络广播,也称有限广播,它不会被路由器转发。
组播地址 #
- 一个IP组播地址标识一组主机接口,一个组所覆盖的网络部分称为组的范围,常见的范围包括同一计算机、同一子网等。
- 当一台主机向一个组发送数据时,他会创建一个数据报,使用单播IP地址作为源地址,使用组播IP地址作为目的地址,已加入组的所有主机将接收发送到改组的任何数据报。
封装 #
- 上层向下层传输数据时,每一层都会对收到的数据增加一些首部信息。
- 下层向上层传输数据时,会去掉各层协议的报文首部,每层协议都要去检查报文首部中的协议标识,以确定接收数据的上层协议,这个或称被称为分用(Demultiplexing)。
- TCP(传输控制协议)传给IP的数据单元被称作TCP报文段或者简称为TCP段(TCP segment),UDP(用户数据报协议)传给IP的信息单元被称为UDP数据报(UDP datagram)。IP传给网络接口层的数据单元是分组(packet)也可以叫做IP数据报,分组既可以是一个IP数据报(IP datagram),也可以是IP数据报的一个片(fragment)。通过以太网传输的比特流称作帧(Frame)。
- 以太网数据帧的长度必须时46~1500字节之间,以太网帧包含一个48位的目的地址(又称为介质访问控制(MAC))和一个16位的以太网类型字段(指定是IPv4或者IPv6等)。
端口号 #
- 端口号由16位组成,范围是(0~65535)。每个IP地址有65536个可用的端口号。
- 标准的端口号由Internet号码分配机构(IANA)分配。这组数字被划分为特定范围,包括熟知端口号(0-1023)、注册端口号(1024-49151)和动态/私有端口号(49152-65535)。类似Linux这样的操作系统绑定到一个熟知端口上需要管理员的权限。
- 安全外壳协议(SSH,端口22)、FTP协议(端口20、21)、Telnet远程终端控制(端口23)、简单邮件传输协议(SMTP,端口25)、域名系统(DNS,端口53)、交互式邮件访问协议(IMAP和IMAPS,端口143和993)、简单网络管理协议(SNMP,端口161和162)、轻量级目录访问协议(LDAP,端口389)、超文本传输协议(HTTP和HTTPS,端口80和443)。