TCP/IP网络编程(尹圣雨)第三章课后习题及答案

149 阅读3分钟

第三章:地址族与数据序列

1. IP地址族IPv4和IPv6有何区别?在何种背景下诞生了IPv6?

IPV4是4字节地址族,IPV6是16字节地址族。IPV6的诞生是为了应对2010年前后IP地址耗尽的问题而提出的标准。

2. 通过IPV4网络ID、主机ID及路由器的关系说明向公司局域网中的计算机传输数据的过程

首先数据传输的第一个环节是向目标IP所属的网络传输数据。此时使用的是IP地址中的网络ID。传输的数据将被传到管理网络的路由器,接受数据的路由器将参照IP地址的主机号找自己保存的路由表,找到对应的主机发送数据。

3. 套接字地址分为IP地址和端口号。为什么需要IP地址和端口号?或者说,通过IP可以区分哪些对象?通过端口号可以区分哪些对象?

IP地址是为了区分网络上的主机。端口号是区分同一主机下的不同的SOCKET,以确保软件准确收发数据。

4. IP地址分类方法

  • A:0-127, 0开始
  • B:128-191 10开始
  • C:192-223 110开始

5. 计算机通过路由器或交换机连接到互联网。请说出路由器和交换机的作用

路由器是帮助数据传输到目的地的中介。不仅如此,还起到帮助连接本地网络的电脑和互联网的作用

6. 什么是知名端口?其范围是多少?知名端口中具有代表性的HTTP合同FTP端口号各是多少?

“知名端口(Well-known PROT)”是指预定分配给特定操作的端口。其范围是0~1023,其中最知名的端口是HTTP80端口,TCP21端口,FTP20端口。

7. bind()函数第二个参数类型是sockaddr,为什么传进的是sockaddr_in

bind函数第二个参数类型是sockaddr结构体,很难份分配IP地址和端口号,因此IP地址和PORT号的分配是通过sockaddr_in完成的。因为该结构体和sockaddr结构体的组成字节序和大小完全相同,所以可以强转。

8. 请解释大端序、小端序、网络字节序,并说明为何需要网络字节序。

小端序是把高位字节存储到高位地址上;大端序是把高位字节存储到低位地址上。因为保存栈的方式有差异,所以对网络传输数据的过程制定了标准,这就是“网路字节序”。而且,在网络字节序中,数据传输的标准是“大端序”。

9. 大端计算机希望将4字节整型数据12传到小端序计算机。请说出数据传输过程中发生的字节序变换过程。

因为网络字节序的顺序标准是“大端序”,所以大端序的计算机在网络传输中不需要先转换字节顺序,直接传输。但是接受数据的是小端序计算机,因此,要经过网络转本地序的过程,再保存到存储设备上。

由于网络字节顺序的标准是“大端”,使用大端的计算机按照存储在内存空间中的顺序通过网络传输4字节整数12。然而,接收数据的计算机使用小端,因此它将传输的数据转换成小端的形式,然后将其存储在内存空间中。

10. 怎么表示回送地址?其含义是什么?如果向回送地址传输数据将会发生什么情况?

回送地址表示计算机本身,为127.0.0.1。因此,如果将数据传送到IP地址127.0.0.1,协议软件立即返回之,不进行任何网络传输。