一、课程知识
1.互联网相关概念,网络协议基础,网络相关命令,环境配置
2.Socket网络编程
3.tcp协议及其原理
4.ip协议以及源码分析
5.dns域名解析以及dhcp服务
TCP/IP协议族
要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何在它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中。
在Internet层,解析IP地址,寻找通往目标IP的目的地的下一个路由地址。在网络接口层,则是寻找响应的硬件(MAC)地址。数据流以及网络拓扑结构如下图所示。
Socket相关知识
socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。
TCP的三次握手
第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入SYN_SEND状态等待服务器确认
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
定睛一看,服务器socket与客户端socket建立连接的部分其实就是大名鼎鼎的三次握手
其在socket中的三次握手
二、计算机网络知识水平与编程能力测试
选择题
1.数据链路层采用后退 N 帧(GBN)协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方
3.在学校局域网上ping 其中一个服务器 没有涉及到的网络协议是?()
A、TCP B、DNS C、ICMP D、ARP
答案:A
解析:首先我们需要dns协议,将网址转为IP地址,其次ping的原理是使用ICMP的回响机制,所以必然用到了网络层的ICMP协议,最后在到达对方局域网的时候需要使用RARP查找mac地址,在发送主机不知道自己IP的时候也会用到ARP协议,所以综上ping的过程中用到了 dns协议、ICMP协议、ARP协议、RARP协议。
4. 若主机甲与主机乙建立 TCP 连接时发送的 SYN 段中的序号为 1000,在断开连接时, 甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲向乙已经发送的 应用层数据的字节数为:
A、4002 B、4001 C、4000 D、3999
答案 C
【解析】 SYN=1000,则数据传输时的起始序号为 1001,字节数 = FIN – 1001 = 4000
5. 假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名的服务器均只提 供迭代查询服务;局域网内主机访问 Internet 上各服务器的往返时间(RTT)均为 10ms, 忽略其他各种时延,若主机 H 通过超链接 http://www.abc.com/index.html,请求浏览纯 文本 Web 页 index.html,则从点击超链接开始到浏览器接收到 index.html 页面为止, 所需最短、最长时间分别是:
A、10ms,40ms B、10ms,50ms C、20ms,40ms D、20ms,50ms
答案 D
【解析】 最短时间:本地域名服务器存在域名与 IP 地址的映射 主机向本地域名服务器递归查询 10s + 数据传输 10ms = 20ms 最长时间:本地域名服务器不存在映射,需要迭代查询各级域名服务器 3 次 10ms + 迭代查询 3 次 30ms + 数据传输 10ms = 50ms
6、DNS工作于( )
(A)网络层
(B)传输层
(C)应用层
(D)表示层
答案:C
7,【百度文库】在实现基于TCP的网络应用程序时,服务器端正确的处理流程是( )
A、socket() -> bind() -> listen() -> connect() -> read()/write() -> close()
B、socket() -> bind() -> listen() -> read()/write() -> close()
C、socket() -> bind() -> listen() -> accept() -> read()/write() -> close()
D、socket() -> connect() -> read()/write() -> close()
答:C,socket基础概念。
8,【原创】下面哪个函数负责构造一个携带SYN标志位的TCP头并发送出去,同时还设置了计时器超时重发( )
A、tcp_transmit_skb
B、inet_csk_accept
C、tcp_v4_rcv
D、tcp_connect
答:D,考察对Linux网络协议栈的了解。
简答题
1.什么是TCP的三次握手机制?TCP的三次握手机制过程简述。
答:三次握手:
(1)Client先产生一个初始序列号seq,SYN标志位置1,将该数据包发送给Server端,之后Client端进入SYN_SENT状态,等待Client确认。
(2)Server收到数据包后也发送自己的SYN报文作为响应,并初始化序列号seq,为了确认Client的seq,Server将Client发送的seq加1作为ACK发送给Client,Server进入SYN_RCVD状态。
(3)为了确认Server的SYN,Client将Server发送的seq加1作为ACK发送给Server。Client和Server进入ESTABLISHED状态,完成三次握手。
2.简述交换机、集线器和路由器的区别,交换机和集线器的联系。
答:
1.集线器
集线器工作在物理层
共享带宽
半双工
广播发送
2.交换机
以太网交换机工作在数据链路层
连接局域网中的主机
相互通信的主机独占带宽
依据MAC地址转发,有目的发送
3.路由器
路由器工作在网络层
是一个多输入输出端口的专用计算机
连接不同的网络
共享带宽
依据IP地址转发,有目的发送
3.简述UDP和TCP的协议的主要特点和它们的主要差别
答:UDP
(1)无连接
(2)尽最大努力交付,不可靠
(3)无拥塞控制,效率高,适合于IP电话,实时视频等
(4)首部开销小,只有四个字段(源端口,目的端口,长度,检验和)
(5)可一对一,一对多,多对一,多对多交互
(6)面向报文
TCP
(1)面向连接的传输层协议
(2)每个TCP连接只能有两个端点,一对一
(3)可靠交付
(4)全双工通信
(5)面向字节流,“流”指流入到进程或从进程流出的字节序列,将收到的分组组织成字节流提交给上层
综合题
解析:
2.
某网络拓扑如下图所示,其中R为路由器,主机H1~H4的IP地址配置以及R的各接口IP地址
配置如图中所示。现有若干台以太网交换机(无VLAN功能)和路由器两类网络互连设备可供选择。
请回答下列问题:
(1) 设备1、设备2和设备3分别应选择什么类型网络设备?
(2) 设备1、设备2和设备3中,哪几个设备的接口需要配置IP地址?并为对应的接口配置正确的IP地
址。
(3) 为确保主机H1~H4能够访问Internet,R需要提供什么服务?
(4) 若主机H3发送一个目的地址为192.168.1.127的IP数据报,网络中哪几个主机会接收该数据报?
参考答案:(1)设备1:路由器 设备2:以太网交换机 设备3:以太网交换机
(2)设备1的接口需要配置ip地址;设备1的IF1,IF2,IF3接口的ip地址分别是
192.168.1.254 192.168.1.1 192.168.1.65
(3)R需要提供NAT服务
(4)主机H4会接收该数据报
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?
原文:https://www.cnblogs.com/ustc-BlueSky/p/12178249.html