TCP协议的是一种状态集转换、子网划分过程




作者Georgekai

归档:学习笔记

2018/1/17


网络运维基础(三)

1.1 TCP协议的十一种状态集转换

1.1.1 TCP三次握手状态集的转换

1.服务端:

1)服务端从closed状态转换为listen状态(在服务端开启相应服务),只有在listen才可以     接受客户端建立连接的请求

2)从colsed转变为listen,实际上就是创建了一个socket信息

netstat -an|grep -i es  可以看到socket条目信息

socker条目:tcp或udp协议——目标地址,端口——源地址,端口——状态

2.客户端:

1)客户端发送syn信息给服务端,然后客户端从closed状态变为syn_send状态(三次握手   的第一次握手)

3.服务端:

1)服务端在listen状态接收到客户端发送的syn请求,会响应syn和ack信息,并且从listen   状态装换为syn_rcvd状态(三次握手的第二次握手)

4.客户端:

1)客户端在syn_send状态接收到服务端的syn和ack字段信息,然后回复ack确认信息(三     次握手的第三次),发送完后,从syn_send转换为established

注:在/etc/sysctl.conf中设置net.ipv4.tcp_syncookies=1来防止SYN Flood攻击

1.1.2 TCP的四次挥手状态集的转化

1.客户端:

1)客户端在established状态发送fin字段信息给服务端(四次挥手的第一次挥手)

客户端状态转变为fin_wait1(第一次等待:服务端的确认ack信息)状态

2.服务端:

1)服务端在established接收到客户端发送的fin字段信息,从established状态转换成close_wait    状态

2)服务端在close_wait状态发送ack确认字段(四次挥手的第二次挥手)

3.客户端:

1)客户端在fin_wait1状态接收到服务端的ack信息,进入到fin_wait2等待状态(第二次等   待:等待服务端的fin信息)

4.服务端:

1)服务端在close_wait状态发送fin断开连接字段给客户端(四次挥手的第三次挥手)

2)服务端从close_wait状态变为last_ack状态

5.客户端:

1)客户端在fin_wait2状态接受服务端的fin信息,然后响应ack信息给服务端,并将自己的   fin_wait2状态time_wait状态

6.服务端:

1)服务端在last_ack状态接受到客户端发送的ack字段信息后,就会进入最终的closed状态

7.客户端:

1)在time_wait状态会等待90秒钟的时间,才会进入到closed状态

注:传输层发送fin(请求断开连接),是接收到了会话层的断开连接请求(这样一层层的转发)

那么问题来了:1. 为什么会有四次挥手过程,ack 和fin要分开发送

答:服务端接受到了客服端的FIN时会向应用层汇报,并回应ACK给客户端,

然后会等数据传输完毕后,在发送FIN请求断开连接。

2.客户端为什么要有time_wait状态

答:为了确保服务端能收到ack,客户端会在time_wait不断给服务端发送ack。

3.总结closing状态的由来:

答:在第二次挥手的时候,客户端没收到服务端发送的ack,但收到了fin字段信      息,按理说收到fin后应该转换为time_wait,所以加了colsing起一个缓存时      间(过程很快)

TCP的十一种状态总结

1.2 UDP相关报文结构

1.3 IP地址分类与子网划分基础

1.3.1 什么是IP地址(常见的IP的地址为ipv4和ipv6

1. IPV4:有32位二进制组成,采用点分十进制分为4段,每段为8位二进制

2. IPV4和IPV6的总数:用awk计算了一下,大约这么多

注:seq -w 10   让数字补齐

1.3.2 IP地址分类

1. 按IP的数值范围划分:A B C D E 五类地址

常用地址为ABC三类地址:

A类地址==网络位+主机位+主机位+主机位

B类地址==网络位+网络位+主机位+主机位

C类地址==网络位+网络位+网络位+主机位

D类地址为组播地址:每一个地址都作为一个网段

E类地址为科学研究使用

2 按IP地址的用途分类:公网地址,私网地址

私网地址:每个局域网都可以使用的地址信息,并局域网内唯一,跨越不同局域网可以重复       使用,因此私网地址有效缓解了地址枯竭问题

私网地址的范围:

A类:10.0.0.8  —— 10.0.0.255

B类:172.16.0.0 —— 172.31.255.255

C类:192.168.0.0 —— 192.168.2

公网地址:是互联网上可以识别的地址信息,并且是全球唯一

1.3.3  ABC三类地址的可用主机数计算:

公式:2的N次方-2

注:N为每类地址的主机位数(二进制),最后一个2:表示主机位

1.3.4 ABC三类地址的可用网段数计算:

公式:2的N次方

注:N表示每类地址的网络位数(二进制)

1.3.5 特殊地址

1.3.6 三种常见的网络通讯类型

1.3.7 子网划分

1. 为什么要划分子网?

1)会出现大量的局域网地址,向同一个网关请求,造成网关负载过高

2)会引起局域网内的大量广播数据传送,形成广播风暴

3)浪费地址

2. 子网划分的优点:

1)将一个大的广播域划分为几个小的广播域

2)减少网关设备锁承载的负载量

3)有效避免ip地址的浪费,使一个大的地址空间更加灵活的分配

3. 掩码作用:

1)利用掩码快速得知是A类地址,还是B类,C类?

2)利用掩码定位网络位信息

4. 掩码表现形式:

1)用十进制表示,分为四组,也是32为二进制数组成

2)A类默认掩码:255.0.0.0 或/8

B类默认掩码:255.255.0.0 或/16

C类默认掩码:255.255.255.0 或/24

实例1-1 子网划分计算过程:


关注微信公众号:linux运维菜鸟之旅

原文地址:http://blog.51cto.com/13055758/2062194

时间: 2024-09-30 16:23:58

TCP协议的是一种状态集转换、子网划分过程的相关文章

TCP协议11种状态集!

TCP协议的11种状态集 ### tcp协议11种状态集转换"三次握手5种状态,四次挥手6种状态"服务端:closed-listen-syn_rcvd-established-close_wait-last_ack-close客户端:closed-syn_send-established-fin_wait1-fin_wait2-time_wait-close1. tcp三次握手状态集转换:服务端:(1)closed-listen(开启相应服务),只有在listen状态服务端才可能建立请

TCP协议三次握手、四次挥手过程

本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 上图主要包括三部分:建立连接.传输数据.断开连接. 建立TCP连接很简单,通过三次握手便可建立连接.建立好连接后,开始传输数据.TCP数据传输牵涉到的概念很多:超时重传.快速重传.流量控制.拥塞控制等等.断开连接的过程也很简单,通过四次握手完成断开连接的过程.三次握手建立连接: 第一次握手:客户端发送syn包(seq=x)到服务器,并

TCP协议可靠性数据传输实现原理分析

http://blog.csdn.net/chexlong/article/details/6123087 TCP 协议是一种面向连接的,为不同主机进程间提供可靠数据传输的协议.TCP 协议假定其所使用的网络栈下层协议(如IP 协议)是非可靠的,其自身提供机制保证数据的可靠性传输.在目前的网络栈协议族中,在需要提供可靠性数据传输的应用中,TCP 协议是首选的,有时也是唯一的选择.TCP 协议是在最早由Cerf 和Kahn[1]所提出的有关网络数据包传输协议的概念之上建立的.TCP 协议被设计成符

IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个bit.标识包括选项在内的IP头部字段的长度. 3.服务类型:8个bit.服务类型字段被划分成两个子字段:3bit的优先级字段和4bit TOS字段,最后一位置为0. 4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小花费.4bit中只能将其中一个bit位置1.如果4个bit均为0,则

TCP协议与UDP协议的区别

TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了.   常用的网络协议 -UDP:概念来自于"电报"     -只管发送,不确认对方是否收到     -以数据包的形式发送,每个数据包不能

Linux下tcp协议socket的recv函数返回时机分析(粘包)

http://www.vckbase.com/index.php/wv/10http://blog.csdn.net/zlzlei/article/details/7689409 文章一: 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API).TCP/IP传输层有两个并列的协议:TCP和UDP.其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务.UDP(user datagram pro

TCP协议与UDP协议的区别(转)

TCP协议与UDP协议的区别(转)    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了.TCP/IP协议集包括应用层,传输层,网络层,网络访问层.其中应用层包括:超文本传输协议(HTTP):万维网的基本协议.   文件传输(

基于TCP协议的socket编程

一.什么是socket socket本身有"插座"的意思,在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的个进程,"IP地址+端口号"就称为socket. 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成 的socketpair就唯一标识一个连接. 套接字是一种进程间的通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,例如文件系统空间,共享内存或者

TCP 协议学习小结

TCP 传输控制协议(Transmission Control Protocal): (1)TCP协议概括介绍: TCP协议是传输层的通信协议,有同学或许不理解了,IP是网络层的传输协议,这个传输层和网络层有什么区别呢?依我之见,网络层是用来寻找网络中的主机的,通过IP地址是可以锁定唯一主机的.我们通常的通信,是一个进程和另一个进程之间的通信,而进程是依附于主机的.故在一个进程到另一个进程的通信流程可简化为:进程A——主机A——主机B——进程B.而传输层协议就是实现主机A——主机B之间的通信的.