一、课程总结
网络体系结构自顶向下可以划分为典型的四层结构如图所示,分别是应用层、传输层、网络层、网络接口层。
在linux应用程序中,所有有关socket的系统调用(包括socket、bind、listen等)共用一个系统调用号112,系统调用名称为socketcall。内核执行函数entry_SYSCALL_64时,从寄存器rax中得知系统调用号为112,然后在系统调用表sys_call_table中找到112对应处理函数sys_socketcall的入口地址,并跳转执行。接着进入对应TCP协议处理函数。
网络层主要有IP协议、ARP协议、ICMP协议等构成。IP协议负责数据的路由和传输,在源节点与目的节点之间传送数据报,但并不处理数据内容。数据报中有目的地址等必要内容,使每个数据报经过不同的路径也能准确地到达目的地,在目的地重新组合还原成原来发送的数据。。ARP(Address Resolution Protocol)即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址。ICMP(Internet Control Message Protocol)即Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。除了ARP和RARP报文以外的几乎所有的数据都要经过IP协议进行传送。ARP和RARP报文没有封装在IP数据报中,而ICMP和IGMP的数据则要封装在IP数据报中进行传输。
二、填空题
1. 地址解析ARP就是将计算机中的协议地址翻译成物理地址(或称MAC地址,即媒体映射地址)。
2. 在TCP/IP应用中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
3. TCP和UDP采用端口号来识别应用程序。
4. 建立一个TCP连接需要三次握手,而正常终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)特性造成的。
5. ICMP作为IP协议的附属协议,用来与其他主机或路由器交换错误报文和其他重要信息。
三、简答题
1. 请绘制流式套接字编程时序图。