《TCP/IP 详解卷1:协议》读书笔记&相关面试题

1. 链路层

作用:

  1. 为IP模块发送和接收IP数据报
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP模块发送RARP请求和接收RARP应答

2. IP 网络协议

不可靠:不保证数据报能成功到达目的地
无连接:不维护任何关于后续数据报的状态信息

子网掩码来 识别 子网号和主机号

ifconfig
netstat -in

2.1 ARP 地址解析协议

32bit的IP地址-> 48bit以太网地址

2.2 RARP

ARP的反过程

2.3 ICMP Internet控制报文协议

2.3.1 Ping

2.3.2 traceroute

开始发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加1,以确定路径中的每个路由器。

$ traceroute www.baidu.com
traceroute: Warning: www.baidu.com has multiple addresses; using 182.61.200.7
traceroute to www.a.shifen.com (182.61.200.7), 64 hops max, 52 byte packets
 1  192.168.1.1 (192.168.1.1)  1.447 ms  1.190 ms  1.688 ms
 2  100.108.128.1 (100.108.128.1)  2.451 ms  2.520 ms  2.347 ms
 3  59.108.145.214 (59.108.145.214)  3.246 ms
    59.108.153.65 (59.108.153.65)  2.763 ms
    59.108.161.213 (59.108.161.213)  3.219 ms
 4  * * *
 5  172.16.237.45 (172.16.237.45)  5.498 ms  3.297 ms  5.129 ms
 6  * 59.108.167.233 (59.108.167.233)  30.626 ms  3.866 ms
 7  59.108.200.66 (59.108.200.66)  5.731 ms
    59.108.162.102 (59.108.162.102)  17.101 ms
    59.108.200.66 (59.108.200.66)  6.037 ms
 8  182.61.252.212 (182.61.252.212)  9.695 ms  9.701 ms
    182.61.252.220 (182.61.252.220)  4.730 ms
 9  * * *

2.4 IP路由

简单路由表

netstat -rn

$ netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.1.1        UGSc           22       55     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              6 15493696     lo0
169.254            link#4             UCS             0        0     en0
192.168.1          link#4             UCS             1        0     en0
192.168.1.1/32     link#4             UCS             1        0     en0

Internet6:
Destination                             Gateway                         Flags         Netif Expire
default                                 fe80::%utun0                    UGcI          utun0
::1                                     ::1                             UHL             lo0
fe80::%lo0/64                           fe80::1%lo0                     UcI             lo0
fe80::1%lo0                             link#1                          UHLI            lo0
fe80::%en0/64                           link#4                          UCI             en0

动态选路协议

3. UDP

3.1 广播和多播

受限的广播地址 255.255.255.255

3.2 IGMP Internet组管理协议

3.3 DNS 域名系统

域名到IP

4. TCP 传输控制协议

在这里插入图片描述
URG: Urgent Pointer field significant
ACK: Acknowledgment field significant
PSH: Push Function
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender

4.1 TCP服务

TCP 的可靠性含义: 接收方收到的数据是完整, 有序, 无差错的。
提供可靠性:

  • 控制数据报大小:应用数据被分割成TCP认为最适合发送的数据块。
  • 超时重传:当TCP发出一个段后,启动定时器,等待目的端收到这个报文段后的确认,超时重传。
  • 延迟确认:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。延迟确认。
  • 正确性校验:TCP将保持它首部和数据的校验和。
  • 保证顺序:可能对收到的数据进行重新排序。
  • 去重:丢弃重复的数据。
  • 流量控制:有固定大小的缓冲空间。
    问题5 可以回答,每一条都会展开详细分析。

4.1.1 TCP连接状态图

在这里插入图片描述
Maximum Segment Lifetime (MSL)

netstat命令查看状态

4.1.2 三次握手

在这里插入图片描述

4.1.3 四次挥手

在这里插入图片描述
在这里插入图片描述

4.2 TCP交互数据流

延迟确认

TCP接收到数据时并不立即发送ACK,推迟发送,数据捎带ACK

Nagle算法

要求一个TCP连接上最多只能有一个未被确认的未完成的小分组(41字节,20字节IP首部,20字节TCP首部和1个字节数据)。

4.3 TCP成块数据流

滑动窗口

控制ACK的节奏。

push

慢启动

拥塞窗口(congestion window):发送方使用的拥塞控制。1->2->4

5. 常见面试题

  1. 详细描述 三次握手 和 四次挥手的机制,画出状态图?
    答:4.1已经回答。

  2. 1的引申,为什么是三次握手?
    答: TCP是全双工的面向连接、可靠的通信协议。
    我们先来看 三次握手 做了什么。

    • client、server建立了连接
    • client、server交换了 初始 seq 序列号>。 序列号可以保证报文顺序、不重、不丢。

如果是一次的话,无法保证请求建立连接报文一定到达。
如果是两次的话,无法确保S第二个请求YN+ACK一定到达。

  1. 1的引申,为什么是四次挥手?
    答:TCP是全双工的通信。

  2. 四次挥手中TIME_WAIT状态存在的目的是什么?这个问题还可以延伸,所以学知识需要多思考。
    答:TIME_WAIT也称2MSL等待状态。当TCP执行一个主动关闭,并发回最后一个ACK,该连接必须在TIME_WAIT状态停留的时间为2倍MSL。 这样可以让TCP再次发送最后的ACK以防这个ACK丢失。(另一端超时并重发最后的FIN)。

  3. TCP是通过什么机制保障可靠性的?

其他资料:
https://www.ietf.org/rfc/rfc793.txt
https://www.zhihu.com/question/24853633

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值