标签:方式 手动 服务 otto local 查找 网络基础 服务器 自动分配
1.1 DHCP协议DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由IETF(Internet工作任务小组)设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
减少管理员的工作量
避免输入错误的可能
避免IP冲突
提高了IP地址的利用率
方便客户端的配置
自动分配 :分配到一个IP地址后永久使用
手动分配 :由DHCP服务器管理员专门指定IP地址
动态分配 :使用完后释放该IP,供其它客户机使用
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式(因为DHCP服务器的IP地址对客户机来说是未知的)发送DHCP Discover发现信息来寻找DHCP服务器。广播信息中包含DHCP客户机的MAC地址和计算机名,以便DHCP服务器确定是哪个客户机发送的请求。
2. 服务器响应
当DHCP服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机,如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP Offer的消息中,然后DHCP服务器就广播一则包含下列信息的DHCP Offer消息。
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租约的请求。
4. 服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功的确认。该消息包含有IP地址的有效租约和其他可配置的信息,虽然服务器确认了客户机的租约请求,但是客户机还没有接收到服务器的DHCP ACK消息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化。
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请求包
(2)IP地址没有分配使用,发送DHCP ACK确认信息
客户端继续使用重启前的IP地址
(3)IP地址分配到其他客户机使用
发送DHCP Nack否认信息
客户机重新发送DHCP Discover
6. 更新租约
IP地址的租期达到50%后,须重新更新租期
客户端直接向服务器发送DHCP Request包
传输层=====>主机到主机层
使用TCP的应用:web浏览器;电子邮件;文件传输程序
TCP传输控制协议 | UDP用户数据报协议 |
面向连接 | 无连接 |
可靠传输(安全) | 不可靠传输(不安全) |
可实现流量控制 | 尽力而为,尽力传递 |
同步 ,提供全双工服务 | 异步 |
效率低 | 效率高 |
可用端口:2的16次方=65536 0号端口不会用到,所以是1-65535
1-65535(涉及到一些著名的端口号1-1024 )
随机端口号默认范围区间:
[root@wuhuang ~]# cat /proc/sys/net/ipv4/ip_local_port_range 4000 65000 |
1. 源端口号:发送端的端口号(随机)
2. 目的端口号:接收端的端口号(固定)
3. 确认号的概念:服务端接受到拆分后的数据包。进行确认,告知下一次发送的数据包序列号信息
4. TCP报文重要控制位:
1)syn:请求建立连接
2)fin:请求断开连接
3)ack:确认控制字段,表示接收的数据进行确认(从而实现了TCP协议的可靠性)
由主机A发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且还将报文中SYN字段置为1,表示需要建立TCP连接请求
A端收到B端发送的TCP建立请求后,会使自己的原有序列号加1进行再次发送序列号,并且再次回复ACK验证请求,在B端发送过来的seq基础上加1,进行回复;同时也会回复ack确认控制字段,
以便B收到信息时,知晓自己的TCP建立请求已经得到了确认
数据传输过程中:每发送一次数据,都会产的ACK(表示收到了对方seq对应的信息),ack(表示确认收到),seq(请求序列号)
主机A发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
主机B收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
主机B发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
A端收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手
标签:方式 手动 服务 otto local 查找 网络基础 服务器 自动分配
原文地址:http://blog.51cto.com/12805107/2066041