DHCP,TCP的三次握手和四次挥手

1.1 DHCP协议

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由IETF(Internet工做任务小组)设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议web

1.1.1 使用DHCP的好处

减小管理员的工做量浏览器

避免输入错误的可能安全

避免IP冲突服务器

提升了IP地址的利用率网络

方便客户端的配置异步

1.1.2 DHCP的分配方式

自动分配 分配到一个IP地址后永久使用ide

手动分配 DHCP服务器管理员专门指定IP地址spa

动态分配 使用完后释放该IP,供其它客户机使用设计

1.1.3 DHCP工做原理

image.png 

1. 客户机请求IP

当一个DHCP客户机启动时,客户机尚未IP地址,因此客户机要经过DHCP获取一个合法的地址。此时DHCP客户机以广播方式(由于DHCP服务器的IP地址对客户机来讲是未知的)发送DHCP Discover发现信息来寻找DHCP服务器。广播信息中包含DHCP客户机的MAC地址和计算机名,以便DHCP服务器肯定是哪一个客户机发送的请求。3d

image.png 

 2. 服务器响应

DHCP服务器接收到来自客户机请求IP地址的信息时,它就在本身的IP地址池中查找是否有合法的IP地址提供给客户机,若是有,DHCP服务器就将此IP地址作上标记,加入到DHCP Offer的消息中,而后DHCP服务器就广播一则包含下列信息的DHCP Offer消息。

image.png 

3. 客户机选择IP

DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能提供给另外一个DHCP客户机。当客户机从第一个DHCP服务器接收DHCP Offer消息并提取了IP地址后,客户机将DHCP Request消息广播到全部的DHCP服务器,代表它接受提供的内容,DHCP Request消息包括为客户机提供IP配置的服务器的服务标示符(服务器IP地址),DHCP服务器查看服务器标识符字段,以肯定提供的IP地址是否被接受,若是DHCP Offer被拒绝,则DHCP服务器将会取消并保留其IP地址以提供给下一个IP租约的请求。

image.png 

4. 服务器肯定租约

DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功的确认。该消息包含有IP地址的有效租约和其余可配置的信息,虽然服务器确认了客户机的租约请求,可是客户机尚未接收到服务器的DHCP ACK消息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化。

image.png 

5. 从新登陆

DHCP客户机每次从新登陆网络时,不须要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。当DHCP服务器接收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。若是此IP地址已没法再分配给原来的DHCP客户机使用时(好比IP已经分配给其余的DHCP客户机使用),DHCP服务器给DHCP客户机回答一个DHCP Nack否定信息。当原来的DHCP客户机收到此DHCP Nack否定信息后,它就必须从新发送DHCP Discover发现信息来请求新的IP地址。


(1)发送带有IP地址的DHCP Request请求包

image.png

(2)IP地址没有分配使用,发送DHCP ACK确认信息

        客户端继续使用重启前的IP地址

image.png

(3)IP地址分配到其余客户机使用

        发送DHCP Nack否定信息

        客户机从新发送DHCP Discover

image.png

image.png

6. 更新租约

IP地址的租期达到50%后,须从新更新租期

客户端直接向服务器发送DHCP Request包



第2章 传输层的两种协议(TCP和UDP

       传输=====>主机到主机层

2.1 TCP:传输控制协议 ---属于面向链接的网络协议---同步(安全 效率低)

   TCP协议特色:属于面向链接的网络协议

                 同步 (提供全双工服务,即数据可在同一时间双向传输)

                 安全,可靠传输 ,传输速度慢,效率低

                使用TCP的应用:web浏览器;电子邮件;文件传输程序

2.2 UDP: 用户报文协议---属于无链接的网络协议-----异步(不安全 效率高)

UDP协议特色: 属于无链接的网络协议 

               异步 

               不安全,速度传输快 

               尽力而为,无论你是否收到 

               使用UDP的应用:DNS,视频流,IP语音(VoIP)


TCP传输控制协议

UDP用户数据报协议

面向链接

无链接

可靠传输(安全)

不可靠传输(不安全)

可实现流量控制

尽力而为,尽力传递

同步 提供全双工服务

异步

效率低

效率高 

2.2.1 端口号计算

  可用端口:2的16次方=65536  0号端口不会用到因此是1-65535

  1-65535(涉及到一些著名的端口号1-1024 )

 注:著名端口号范围1-1024,自定义端口的时候不要使用(避免冲突)

  随机端口号默认范围区间:

[root@wuhuang ~]#  cat /proc/sys/net/ipv4/ip_local_port_range

4000 65000


源端口随机端口号分配,取决于这个配置文件

第3章 TCP三次握手/四次挥手

3.1 TCP报头

image.png 

1. 源端口号:发送端端口号(随机)

2. 目的端口号:接收端端口号(固定)

3. 确认号的概念:服务端接受到拆分后的数据包。进行确认,告知下一次发送的数据包序列号信息

4. TCP报文重要控制位:

  1)syn:请求创建链接

  2)fin:请求断开链接

  3)ack:确认控制字段表示接收的数据进行确认(从而实现了TCP协议的可靠性)

3.2 三次握手

3.2.1 第一次

由主机A发送创建TCP链接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,而且还将报文中SYN字段置为1,表示须要创建TCP链接请求

3.2.2 第二次

主机B会回复A发送的TCP链接请求报文,其中包含seq序列号,也是由回复端随机生成的,而且将回复报文的SYN字段置1,并且会产生ACK验证字段,ACK验证字段数值是在A发过来的seq序列号基础上加1进行回复;而且还会回复ack确认控制字段,以便A收到信息时,知晓本身的TCP创建请求已获得了确认。

3.2.3 第三次

A端收到B端发送的TCP创建请求后,会使本身的原有序列号加1进行再次发送序列号,而且再次回复ACK验证请求,在B端发送过来的seq基础上加1,进行回复;同时也会回复ack确认控制字段,

以便B收到信息时,知晓本身的TCP创建请求已经获得了确认

数据传输过程当中:每发送一次数据,都会产的ACK(表示收到了对方seq对应的信息),ack(表示确认收到),seq(请求序列号)

image.png 

3.3 四次挥手

3.3.1 第一次挥手

主机A发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

3.3.2 第二次挥手

主机B收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

3.3.3 第三次挥手

主机B发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

3.3.4 第四次挥手

A端收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手

image.png 

3.4 总结

image.png

相关文章
相关标签/搜索