Day25 课堂笔记
1 掌握难点 TCP/IP 协议C/S 架构建立连接过程分析
1.1 过程描述
第一次握手:
建立连接时,客户端发送syn 包(syn=j)到服务器,并进入SYN_SENT 状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:
服务器收到syn 包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN 包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV 状态;
第三次握手:
客户端收到服务器的SYN+ACK 包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP 连接成功)状态,完成三次握手。
1.2 抓包分析
1.)客户端发送SYN 字段和ISN 初始序列号给服务器,并进入了SYN_SEN状态。(掌握)
2.)服务器应答,发送(SYN+ACK 字段),SYN 字段为服务器S 的ISN 初始序列号给客户端(注 这里的seq 与客户端发送的seq 没有关系,是服务器自己的seq)。(掌握)过程如下图:
3.)客户端发送ACK 字段 ISN 码值为第二次握手时服务器发送的SYN ISN 值加1。客户端和服务器端都进入ESTABLISHED 状态,连接建立成功!
建立连接成功就可以等待发送和接收数据了。
2 (掌握)TCP/IP 建立连接3 次握手状态转换
掌握难点 TCP/IP 协议C/S 架构断开连接过程分析
1 过程分析
1.)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1,此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP 规定,FIN 报文段即使不携带数据,也要消耗一个序号。
2.)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP 服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSEWAIT状态持续的时间。
3.)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
4.)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
5.)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIMEWAIT(时间等待)状态。注意此时TCP 连接还没有释放,必须经过2MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB 后,才进入CLOSED状态。
6.)服务器只要收到了客户端发出的确认,立即进入CLOSED 状态。同样,撤销TCB 后,就结束了这次的TCP 连接。可以看到,服务器结束TCP 连接的时间要比客户端早一些。
2 抓包分析过程
1 客户端发送FIN ACK 字段ISN 初始序列值seq 释放连接请求。
2 服务器先确认客户端C 的FIN 请求,并发送ISN seq 初始序列值。
3 服务器S 向客户端C 发送FIN+ACK 字段以及ISN 值
4 客户端C 对服务器S 的FIN 请求确认
3 (掌握)TCP/IP 断开连接4 次握手状态转换详解
(面试宝典)3 次握手和4 次挥手总结归纳
4 (了解)TCP 状态变迁以及数据传输过程
3 (掌握)网络IP 地址的划分
3.1 IP 地址分类与TCP/UDP 端口简述
要想使网络设备或者服务器能够连接到Internet,必须为网络设备配置IP地址。IP 地址在Internet 上IP 地址是全球唯一的,IP 地址可以标示一个主机。目前应用范围最广的是IPv4 的IP 地址,长为32 位。由4 组10 进制数组成。每一次的范围值是0~255,中间用点号“.”隔开,称为四组“点分二进制”。
例如:IP 地址为 172.16.12.204
01101100 00010000 00001100 11001100 32 位 IPv4每一个分段是8 位 最大值 2^8 = 256 0~255
3.2 因特网中IP 地址的分类
一个IP 地址由IP 地址的类型、网络ID 和主机ID 组成。网络类型标示本IP 地址所属的类型,网络ID 标示IP 标示设备或主机所在的网络,主机ID标示网络上的工作站、服务器或路由器。每一个网络设备对应的网络ID 必须唯一,在同一个网络中各网络设备的主机ID 不能重复,以进行区分。IP地址的一般格式为:
类别 + 网络标示 + 主机标示
类别:用来区分IP 地址的类型
网络标示(Network ID ):用来标示主机所在的网络。
主机标示(Host ID):用来标示主机在网络中的标示。
3.3 IP 地址从用途角度分类
1 公网IP
例如访问IP138
2 私网IP
对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP 地址、广播地址以及组播地址。
3.4 IP 地址分类
IP 地址通常分为5 类:A 类 B 类、C 类、D 类、E 类
A 类地址:
网络表示占一个字节,最高位为0。A 类网络地址有128个,允许支持127 个网络,每个A 类网络大约有1670 万台主机存在。此类地址通常分配给拥有大量主机的网络,如一些大公司(IBM 等)和因特网主干网络,这些地址中大约有1/3 已经被分配。想得到这类地址是很困难的。
B 类地址:
B 类地址的高两位用于表示这种IP 地址的类型,即为10,中间的14 位用于标识网络,最后的两个字节16 位用作主机标识。B 类地址允
许有16000 个网络,每个网络大约允许有66000 台主机。B 类地址通常分配给节点比较多的网络,如区域网,此类IP 大约已经分配了5000 个B 类地址。
C 类地址:
C 类IP 地址是最常见的地址,网络标识占3 个字节,3 个高位用于地址类型标识,值为110。左边3 个字节中的其余21 位用于表示网络寻址,C 类地址支持大约209715 个网络。最后一个字节用来标识主机,允许有254 台主机。C 类地址通常分配给节点比较少的网络,例如,一些大的校园网可以拥有多个C 类地址。
D 类地址:
D 类地址是相当新的,前4 位位1110,此类地址用于组播,例如路由器修改、视频会议等应用系统都采用了组播技术实现。
E 类地址:
E 类地址为保留地址,目前没有使用。
A 类IP 地址由1 字节的网络地址和3 字节主机地址组成,网络地址的最高位必须是“0”。二进制表示为:
00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110B 类IP 地址由2 个字节的网络地址和2 个字节的主机地址组成,网络地址的最高位必须是“10”。二进制表示为:
10000000 00000001 00000000 00000001 - 10111111 1111111011111111 11111110C 类IP 地址由3 字节的网络地址和1 字节的主机地址组成,网络地址的最高位必须是“110”。二进制表示为:
11000000 00000000 00000001 00000001 - 11011111 1111111111111110 11111110D 类IP 地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
E 类IP 地址第一个字节以“11110”开始,仅作实验和开发用。
3.5 私有IP 地址段
私有地址属于非注册地址,专门为组织机构内部使用,与需要付费才能使用的公网IP 地址不同,私有IP 地址可以免费使用,但同样的不能直接访问公网,当私有网络内的主机要与位于公网上的主机进行通讯时必须经过地址转换,将其私有地址转换为合法公网地址才能对外访问。私有IP 地址的出现极大程度上缓解了公网IP 地址不足的现象,在内部局域网中私有IP地址可以像公网IP 地址一样地使用;有些不需要与网络通讯的设备,如打印机等也可以使用私有IP 地址。
3.6 特殊IP 地址
0.0.0.0
0.0.0.0 已经不是一个真正意义上的IP 地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。
255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
127.0.0.1
本机回路地址。该地址的数据包不会在网络中网络上传输,除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包。
224.0.0.1
组播地址,注意它和广播的区别。从224.0.0.0 到239.255.255.255 都是这样的地址。224.0.0.1 特指所有主机,224.0.0.2 特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet 路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
169.254.x.x
如果你的主机使用了DHCP 功能自动获得一个IP 地址,那么当你的DHCP 服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows 系统会为你分配这样一个地址。如果你发现你的主机IP 地址是一个诸如此类的地址,很不幸,十有八九 是你的网络不能正常运行了。
4 (掌握)子网掩码
4.1 子网掩码简介
子网掩码指的是一个32 位字段的数值,利用此字段来屏蔽原来网络地址的划分情况。
4.2 子网掩码的含义
网络的子网掩码设置主要用来屏蔽原来的网络划分情况。使用子网掩码,网络设备可以分析得出一个IP 地址的网络地址和子网地址,以及主机地址。网络的路由器根据目的地址的网络号和子网号可以做出路由寻址决策,IP地址的主机ID 不参与路由器的路由寻址操作,它用于在某个网段中识别一个网络设备。子网掩码使用与IP 相同的“点分四段式”的编址格式,其中值为0 的部分对应于IP 地址的主机ID 部分,值为1 的部分对应于IP 地址的网络地址部分。子网掩码与IP 地址进行“与”运算后,所得到的值为网络地址和子网地址,主机ID 部分将不再存在。利用此特性可以计算两个IP 地址的网络地址和子网地址判断是否处于同一个子网中。
【例子】:某个网络IP 分组数据的目的地址为192.168.1.151,如果其子网掩码为255.255.255.128,IP 地址与子网掩码 “与”运算后的结果为192.168.1.128,则该IP 地址的网路ID 和子网号的值为192.168.1.128。其实如果网络系统中只有A B C 这3 种类型的IP 地址,判断IP 地址的第一个字节数值范围就可以判断此IP 地址属于A B C 中的哪一类网,从而得到该IP 地址的网络部分和主机部分,不需要子网掩码的辅助。
- A 类地址的网络的子网掩码地址为:
255.0.0.0
- B 类地址的网络的子网掩码地址为:
255.255.0.0
- C 类地址的网络的子网掩码地址为:
255.255.255.0
4.3 (掌握)子网掩码的主要作用
- 便于网路设备的尽快寻址,区分本网段地址和非本段的地址。
- 划分子网,进一步缩小子网的地址空间,充分利用目前紧缺的IP 地址。
网友评论