TCP/IP网络编程(4)

时间:2022-06-01 14:06:21

网络的互联技术

(1)互联网

利用网络互连设备将两个或多个物理网络相互连接,就成了互联网络(internet work),简称互联网,( internet ,当“I”为大写时,特指全球范围内的互联网)。

Intranet  封闭内部网络

Extranet  开放外部网络

(2)路由器

功能

1.在网路之间接收和发送数据包。

2.为网际间通信选择最合适的路由。

3.根据需要可对数据包进行拆分或组装。

4.对于支持多通信协议的路由器,可以将两个使用不同协议的网络设备连接起来。

5.网络安全功能。

(3)面向连接的互联技术(Connet - oriented)

(4)无连接的互联技术(Connectionless)

(5)IP互联原理

不同网络使用的协议不同,地址长度和寻址方式不同,数据帧长度不同。物理网络的这些差别是无法改变的,也就是说,无法做到物理网络的“统一”。但是,都可以对互联的不同物理网络(具体表现就是不同网络的网络接口卡和设备驱动程序互不相同)上传输数据帧,都加上一层相同的“包装”(为了区别数据帧,就把之叫做“数据报”),并且有足够的地址信息(即IP地址)用来识别数据报从何而来(信源),要到什么地方去(信宿),这样的数据包,不同网络中的节点(主要是路由器)都可以识别,因此就可以根据数据报的目标地址将它从一个节点转发到另一个节点,直到目标主机,最后由目标主机对数据报的内容进行解释。

IP(互联网协议)

(1)IP示意

IP协议头 (被封装在内的高层数据)

(2)IP的主要功能

1.将上层数据(如TCP,UDP数据)或同层的其他数据(如ICMP数据)封装到IP数据报中。

2.将IP数据报传送到最终目的地。

3.为了使数据能够在链路层上进行传输,对数据进行分段。

4.确定数据报到达其他网络的路径。

(3)IP在TCP / IP 协议栈中的地位与特点

1.IP是一种无连接(connectionless)不可靠(unreliable)的数据报传输协议。

2.IP互联网中的计算机没有主次之分,所有主机地位平等(唯一标识他们的即为IP地址)。

3.IP互联网没有确定的拓扑结构。

4.在IP互联网中的任何一台主机,都至少有一个独一无二的IP地址,有多个网络接口卡的计算机每个接口可以有一个IP地址,这样一台主机可能有多个IP地址,有多个IP地址的主机叫做多宿主机(Multi - home host)。

5.在互联网中有IP地址的设备,不一定是计算机,可能是IP路由器,网关等。

(4)IP数据报格式

版本号(4位) 头长度(4位) 服务类型TOS(8位) 总长度(16位) 报头区
标识(16位) 标志(3位) 片偏移(13位)
生存时间TTL(8位) 上层协议标识(8位) 头部校验和(16位)
源IP地址(32位)
目标IP地址(32位)
选项 数据区
数据

1.版本号

占用四位2进制数,表示该IP数据报使用的是哪个版本的IP。

2.头长度

用4位二进制数表示,此域指出整个报文头的长度(包括选项),该长度是以32位为一个计数单位,接收端通过此域可以计算出报文头在何处结束及何处开始读数据。

3.服务类型

用8位二进制数表示,规定本数据报的处理方式。服务类型(Type of Service ,TOS)

字段的8位分成了5个子域。

优先权 D T R C 保留

 

一.优先权:占0~2位,这3位二进制数表示的数据范围为000~111(0~7),数越大,表示该数据报优先权越高。

二.短延迟位(Delay , D):该位被置1时,数据报请求以短延时信道传输,0表示正常延时。

三.高吞吐量位(Throughput , T):该位被置1时,数据报请求以高吞吐量信道传输,0表示普通。

四.高可靠性位(Reliability , R):该位被置1时,数据报请求以高可靠性信道传输,0表示普通。

五.低费用位C(Cost):该位被置1时间表示低费用的路由。

六.保留位:第六位和第七位,目前未用,需置0。

以下是一些TOS建议使用数值

应用程序 短延迟位D 高吞吐量位T 高可靠性位R 低成本位C 十六进制值 特性
Telnet 1 0 0 0 0x10 短延迟
FTP控制 1 0 0 0 0x10 短延迟
FTP数据 0 1 0 0 0x08 高吞吐量
TFTP 1 0 0 0 0x10 短延迟
SMTP命令 1 0 0 0 0x10 短延迟
SMTP数据 0 1 0 0 0x08 高吞吐量
DNS UDP查询 1 0 0 0 0x10 短延迟
DNS TCP查询 0 0 0 0 0x00 普通

DNS 区域传输

 

0

1 0 0 0x08 高吞吐量
ICMP差错 0 0 0 0 0x00 普通
ICMP查询 0 0 0 0 0x00 普通
SNMP 0 0 1 0 0x04 高可靠性
IGP 0 0 1 0 0x04 高可靠性
NNTP 0 0 0 1 0x02 低费用路由

4.总长度

用16位二进制数表示,总长度字段是指整个IP数据报的长度,以字节为单位。(理论上IP数据报最长可达65535字节,但是由于物理网络限制,实际要比这个数小的多)

5.生存时间

用8位二进制数表示,它指定数据报可以在网络中传输的最长时间。在实际应用中为了简化过程,把生存时间(Time to Live , TTL)字段设置成了数据报可以经过的最大路由器数。TTL的初始值由源主机设置(通常为32,64,128或者256),一旦经过一个处理它的路由器,它的值就减去1,当该字段的值减为0时,数据报就被丢弃,并发送ICMP报文通知源主机,这样可以防止数据报进入一个循环回路时,数据报无休止地传输。

6.上层协议标识

用8位二进制数表示,IP可以承载多种上层协议,目标端根据协议标识,就可以把收到的IP数据报送至TCP或UDP等处理此报文的上层协议。

十进制标号 协议 说明
0 保留
1 ICMP 网际控制报文协议
2 IGMP 网际组管理协议
3 GGP 网关 - 网关协议  
4 未分配
5 ST
6 TCP 传输控制协议
8 EGP 外部网关协议
9 IGP 内部网关协议
11 NVP 网络语音协议
17 UDP 用户数据报协议

7.校验和

用16位二进制数表示,这个域用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确和完整性。

8.源地址

用32位二进制数表示的发送端IP地址。

9.目的地址

用32位二进制数表示的目的端IP地址。