目录
一、课后习题答案
1.8习题
二、附件:教材
1、TTL是 time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源主机设置初始值但不是存的具体时间,而是存储了一个ip数据报可以经过的最大路由数,每经 过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。
协议:IPV4首部中的协议字段用于通知目标系统应将该IP分组的数据部分交付给哪一个运输层协议或是哪一个直接使用IP通信的进程。在IP数据报传送的路径上的所有路由器都不需要这一字段的信息,只有目的主机才需要该“协议”字段。
2、
3、 IP 地址( Internet Protocol Address ) 用于确定因特网上的每台主机,它是每台主机唯一性的标识。联网设备用物理地址标识自己,例如网卡地址。TCP/ IP 用 IP 地址来标识源地址和目标地址,但源和目标主机却位于某个网络中,故源地址和目标地址都由网络号和主机号组成, 但这种标号只是一种逻辑编号, 而不是路由器和计算机网卡的物理地址。 对于一台计算 机而言, IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆;MAC地址在一定程度上与硬件一致,基于物理,能够标识具体;IP 地址是可变的,而物理地址是固定的。
物理地址即硬件地址, 由 48bit 构成, 是接入网络设备的唯一标识, 在数据传输中封装在数据链路层的数据 帧的首部。 IP 地址由 32bit 组成,是逻辑地址,在 IP 协议的通信中,被封装在 IP 数据报的首部。由于 IP 地址 可以设置到相应的网络设备中,根据 IP 地址的结构,可以很方便的在互连网中进行寻址和路由,并转换为相应的硬件地址,在通信中两种地址工作在协议的不同层次。所以,需要使用这两种地址。
4、分为:A类 B类 C类
A类 126个网络 每个网络可以有16,777,214个主机
B类 16,384个网络 每个网络可以有65,534个主机
C类 2,097,152个网络,每个网络可以有254个主机。
11、与子网与了以后,可以得出网络ID。例如:IP:192.168.0.1子网掩码:255.255.255.0两个地址一与,得出192.168.0.0 即该网段的网络ID(Network ID)。也就是说,从192.168.0.1~192.168.0.255 这个范围内的IP地址之间都可以互相通讯。都在同一个网段中。那么192.168.0.1与255.255.255.0与后为什么得出一个192.168.0.0呢?将他们转换成二进制后就知道为什么了。我不去转换192.168.0.1了。只转换255.255.255.0 转换后为:11111111.11111111.11111111.00000000 我们知道,1与任何数与都还是那个数的值。而0与任何数与都是0。所以,255.255.255.0与192.168.0.1与后就会得出192.168.0.0了。明白了吗?
16、路由聚合(也叫汇总)是让路由选择协议能够用一个地址通告众多网络,旨在缩小路由器中路由选择表的规模,以节省内存,并缩短IP对路由选择表进行分析以找出前往远程网络的路径所需的时间。
21、 端口号作用:由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 UDP 的“端口号”完成的。例如,如果一个工作站希望在工作站 128.1.123.1 上使用域名服务系统,它就会给数据包一个目的地址 128.1.123.1 ,并在 UDP 头插入目标端口号 53 。源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。不管tcp还是udp,都含有网络服务必须的源端口和目的端口信息,以建立和实现网络传输服务。
23、UDP 是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送数据。至于对方是否可以接收到这些数据,UDP 协议无法控制,所以说 UDP 是一种不可靠的协议。许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。当强调传输性能而不是传输的完整性时,尤其是在一些实时性很强的应用场景中,如:音频和多媒体应用,网络游戏、视频会议等,UDP是最好的选择。
26、
TCP建立连接时要传输三个数据包,俗称三次握手(Three-way Handshaking)。
使用 connect() 建立连接时,客户端和服务器端会相互发送三个数据包
客户端调用socket()函数创建套接字后,因为没有建立连接,所以套接字处于CLOSED状态;服务器端调用 listen() 函数后,套接字进入LISTEN状态,开始监听客户端请求。
这个时候,客户端开始发起请求:
1) 当客户端调用 connect() 函数后,TCP协议会组建一个数据包,并设置 SYN 标志位,表示该数据包是用来建立同步连接的。同时生成一个随机数字 1000,填充“序号(Seq)”字段,表示该数据包的序号。完成这些工作,开始向服务器端发送数据包,客户端就进入了SYN-SEND状态。
2) 服务器端收到数据包,检测到已经设置了 SYN 标志位,就知道这是客户端发来的建立连接的“请求包”。服务器端也会组建一个数据包,并设置 SYN 和 ACK 标志位,SYN 表示该数据包用来建立连接,ACK 用来确认收到了刚才客户端发送的数据包。
服务器生成一个随机数 2000,填充“序号(Seq)”字段。2000 和客户端数据包没有关系。
服务器将客户端数据包序号(1000)加1,得到1001,并用这个数字填充“确认号(Ack)”字段。
服务器将数据包发出,进入SYN-RECV状态。
3)客户端收到数据包,检测到已经设置了 SYN 和 ACK 标志位,就知道这是服务器发来的“确认包”。客户端会检测“确认号(Ack)”字段,看它的值是否为 1000+1,如果是就说明连接建立成功。
接下来,客户端会继续组建数据包,并设置 ACK 标志位,表示客户端正确接收了服务器发来的“确认包”。同时,将刚才服务器发来的数据包序号(2000)加1,得到 2001,并用这个数字来填充“确认号(Ack)”字段。
客户端将数据包发出,进入ESTABLISED状态,表示连接已经成功建立。
4)服务器端收到数据包,检测到已经设置了 ACK 标志位,就知道这是客户端发来的“确认包”。服务器会检测“确认号(Ack)”字段,看它的值是否为 2000+1,如果是就说明连接建立成功,服务器进入ESTABLISED状态。
至此,客户端和服务器都进入了ESTABLISED状态,连接建立成功,接下来就可以收发数据了。三次握手的关键是要确认对方收到了自己的数据包,这个目标就是通过“确认号(Ack)”字段实现的。计算机会记录下自己发送的数据包序号 Seq,待收到对方的数据包后,检测“确认号(Ack)”字段,看Ack = Seq + 1是否成立,如果成立说明对方正确收到了自己的数据包。
27、统一资源定位符(URL,英语Uniform Resource Locator的缩写),它的英文简称叫做URL。也被称为网页地址,是因特网上标准的资源的地址。url是用于完整地描述Internet上网页和其他资源的地址的一种标识方法,通常称之为URL地址。
URL的一般语法格式为:protocol :// hostname[:port] / path / [:parameters][?query]#fragment
28、当各地的DNS(LDNS)服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录;该解析记录会在DNS(LDNS)服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向授权DNS服务器发出请求,无需再次发送请求,而是直接返回刚才获得的记录,而这个记录在DNS服务器上保留的时间,就是TTL值。
电子版书籍百度网盘链接:通过百度网盘分享的文件:高级计算机网络教....pdf
链接:https://pan.baidu.com/s/1arFzJQvTPBOWPz4nJj_Fhg
提取码:PBrR
复制这段内容打开「百度网盘APP 即可获取」