计算机网络重要面试知识点
补充:常用端口号了解:
(1)http 80 https 443 ftp 21 telnet 23 tomcat 8080 mysql 3306
(2)http get/post基本区别:
(一)传输层
UDP特点:
1.基于IP协议:复用、分用。可以实现简单的错误校验。
2.尽最大努力交付:可能丢失,非按需达到。
3.无连接:发送方与接收方不需要握手,每个UDP段的处理独立于其他段。
UDP为什么存在(意义):
1.不需要连接,减少延迟。
2.实现简单,无需维护连接状态。
3.头部开销小,只有8个字节。
4.没有拥塞控制:应用可以更好地控制发送时间和速率,而TCP如果拥塞,则会自动调整速度,所以不好控制。因此对于要控制发送速率的应用,用UDP会更好。
应用:DNS、SNMP、流媒体应用
(仍然可以通过)
首部字段:
1.源端口(source port):2字节
2.目的端口(dest port):2字节
3.长度:UDP段的整体长度,包括头部,占用2字节
4.校验和字段:2个字节
UDP校验和:checksum字段作用:
(1)发送方:将段的内容视为16位证书,进行校验和计算,按位取反,并放入到校验和字段。
(2)接收方:计算所收到的校验和,与校验和字段进行对比。若不等,则证明出错。若相等,则未检测出错误,但仍然有可能出错,比如两位同时翻转,则无法检测出来。
整个网络的重点 TCP:
1.特点
2.首部各个字段
序列号:指的是segment第一个字节的编号,而不是segment的编号。建立TCP链接的时候,双方随机选择序列号。
ACKs:
希望接收到的下一个字节的序列号。
累计确认:(跟GBN很像)
3.TCP的可靠数据传输
这里要注意的是,超时时间设置,是用统计学方法求出来得。
上图左:如果在timeout时间内,没有收到ACK,则会重传。
上图右:timeout设置短了,在收到ACK前又重传了,此时重传后,陆续收到了原来来迟了的ACK,最后收到重传后返回的ACK的值,由于是累积确认机制,所以此时ACK值为最大收到的值,为120。
而以上情况,由于累积机制,会出问题。
TCP连接控制 三次握手、四次挥手、同时打开、同时关闭、半关闭
参考链接:https://blog.csdn.net/smileiam/article/details/78226816(三次握手,四次挥手)
①三次握手:https://mp.weixin.qq.com/s/mhIaC-Eyk5XCPH_rfrE-wg
②四次挥手:
③半打开连接:两方连接上后,其中有一边突然掉电而没有发FIN给对方,所以对方一边单独处于连接状态,这种情况叫做半打开连接。
④同时打开:(变成了四次握手)
简单理解为,A给B发SYN包请求建立连接,但是在A的包还没到达B的时候,B就发送了SYN包给A请求建立连接,那么接下来双方都会返回一次ACK包给对方,此时进行了四次握手(很少会出现这样的情况)。
⑤同时关闭:
同时关闭跟同时打开原理相似,也是双方同时请求关闭。
⑥半关闭:
简单理解为,A向B发送了FIN结束请求,B同意了并返回ACK。但是B没有发送FIN给A,因