TCP ,UDP概念和TCP三次握手连接 的知识点总结

OSI 计算机网络7层模型

TCP/IP四层网络模型

传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务。

TCP 中常说的握手指的是:连接的定义和连接的建立的过程。IP 协议是无连接的,但是 TCP 是有链接的。

端口:数据链路层依靠 mac 地址寻址,网络接口层依靠 ip 地址寻址,传输层依靠端口号寻址,端口就是应用层的各种协议进程和传输实体之间进行层间交换的地址。

端口号:标识不同进程的号码,16位,2的16次方个,只在本地有意义。一共有三类,一是保留端口,比如 ftp 是21,20,dns 是53,http 是80端口,smtp 是25等。二是登记端口,三是客户端端口号,也叫临时端口(前两者叫服务端端口)

套接字:主机 ip+端口号组成,只有通过 ip 地址和端口号,才唯一确定一个连接的端口。唯一的标识了网络里的某台主机中的某个应用进程。

udp :

用户数据报协议,实现的是无连接服务,无确认,不可靠的交付,开销小,时延短,没有拥塞控制,主要应用于实时应用,比如 ip 电话,qq,视频会议等。udp 数据报仅仅是 ip 数据报的一部分。

tcp

也就是传输控制协议,实现的是面向连接的服务,向上提供了一条全双工的可靠的逻辑信道,可靠交付,开销大,注意,tcp 的连接通道是逻辑 上的,对路由器不可见,类似虚电路。

tcp 连接的三段:

建立,传送,释放。连接的端点叫 socket(套接字),被唯一的通信两端点确定,采用的是 cs 架构(客户服务器模型),tcp 传输连接的建立采用的是三次握手(可以防止报文段在传输过连接建立中出错)。

tcp三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。

通过这样的三次握手,客户端与服务端建立起可靠的双工的连接,开始传送数据。

但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。

第一次握手:

在考试, a同学 和 b 同学是铁哥们,此时a 想抄b 的卷子上第一个大题的结果。

a 就向 b 说悄悄话,小 b,我抄一下你的卷子的第一个大题的答案,我算不出来了。此时结果有两种:

1、假如小 b 专心答题,没注意 a 的请求,那么,a 和 b 的沟通建立失败,也就是说 b 同学接受不到 a 同学传来的信息,沟通肯定是失败了。

2、假如小 b 听到了 a 的悄悄话,好了,说明第一次对话(握手)成功了。说明 a 同学对 b 同学的请求,b 能接受到。

第二次握手:

小 b 听到了 a 的请求抄袭的信息,结果有两种:

1、假如 b 同学因为紧张,虽然听到了,但是听的内容比较模糊,不知道a具体是想抄袭哪道题,于是就索性的随便敷衍一句:我也不会。此时的a同学一听立刻生气了,还能不能做朋友了?算我看错你了!好的吧,a 和 b 的沟通失败。说明b 同学无法做出正确应答的情况下沟通失败。

2、假如b 同学听到且听清了a 同学的抄袭请求,于是乎,b 同学会做出正确的应答,并对 a说出了第一个大题的结果,并且ab兄弟情深,b还怕a他抄不上。反问:a,你抄好了么?那么等价于第二次握手成功。通过前两次对话(握手)证明了b同学能听到且听清a同学说的话,并能对 a同学的请求,去做出正确的应答。接下来进行第三次握手。

第三次握手:

a 得到了 b 同学的正确的反馈,此时有两个结果:

1、假如a 同学很高兴,马上开始抄吧!a 就忘乎所以了,抄的飞起,结果没注意 b 同学的最后那句话『你炒好了么?』,让人家小b 同学等回复等了好几分钟。b很失落,心说:好啊你,你抄到了,就忘了我了,得,我再也不管你了,最后ab还是沟通失败。说明a 同学无法对 b 同学做出应答的情况下,ab沟通失败。

2、假如a 同学注意到了 b 的反馈和反问,于是 a 同学对 b 同学说:我抄好了。那么 ab 的第三次握手成功,ab已经建立起了愉快流畅的沟通渠道,接下来a 和 b 就可以继续愉快的去传递答案了。

通过第二次和第三次的握手证明:

a 同学能够听到听清 b 同学的话,并且a 同学对此,能做出正确的反馈。可见,ab进行有效的,愉快的沟通,那么这三次握手的过程是必须的。

同理对于TCP为什么需要进行三次握手,可以一样的理解:

实际上就是为了两边的请求都能被识别,所以逻辑上最少三次。为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。

时间: 2024-10-07 17:04:57

TCP ,UDP概念和TCP三次握手连接 的知识点总结的相关文章

TCP/UDP协议、理解三次握手四次挥手、Socket

一.什么是socket? 中文名叫套接字,是对底层的 TCP IP UDP 等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议. 在程序员的言论,他就是一个封装好的模块,要完成网络通讯,只需要使用系统提供的socket模块就行,我们通过调用模块中已经实现的方法建立两个进程之间的 连接和通信. 了解socket层: 二.套接字的发展史 套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix. 因此,有时人们也把套接字

socket中TCP的三次握手连接和四次握手释放

三次握手连接 A: 我进来了啊 B:(有人来了安排个位子)回复:好的你进来吧 A:好的: 客户端向服务器发送一个SYN J 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1 客户端再想服务器发一个确认ACK K+1 四次握手释放 A: 我要走了 B:好的 B:(收回位子)回复:你走吧 A:88 某个应用进程首先调用close主动关闭连接,这时TCP发送一个FIN M: 另一端接收到FIN M之后,执行被动关闭,对这个FIN进行确认.它的接收也作为文件结束符传递给应用进程,因

Tcp三次握手连接和四次挥手断开过程详解

TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续 通信的有序进行.主要步骤如下: 1. 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a: 2. 连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包 的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含 了自己的初始序号b: 3. 连接建立方(Client)收到回应的SYN包以后,回复一个ACK包做响应,其中包含了 下一个希望收到包的序号

tcp 状态示码 及 三次握手

TCP的几个状态对于我们分析所起的作用. 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置. 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应, 如果只是单个的一个SYN,它表示的只是建立

TCP协议三次握手连接四次握手断开和DOS攻击

转载:http://blog.csdn.net/fw0124/article/details/7452695 TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图. 1.建立连接协议(三次握手)(1)客户 端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1.(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志.因此它表示对刚才客

TCP/IP协议全解析 三次握手与四次挥手[转]

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开. AD:51CTO网+ 首届中国APP创新评选大赛火热招募中…… 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中

TCP三次握手连接与四次握手断开

http://blog.csdn.net/whuslei/article/details/6667471(三次握手与四次握手) 1. TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机. 如果采用两次的话,会出现下面这种情况.比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机:于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接.传完东西后,断开. 结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B

TCP三次握手连接和TCP四次挥手及大量TIME_WAIT解决方法:

1.TCP建立连接,三次握手 建立的TCP连接可靠的连接,必须经过三次握手建立连接才能正式通信彼此传输数数据. 客户端请求服务端建立连接 第一次握手:客户给服务发送一个请求报文SYN, 客户端的状态置SYN_SENT状态 第二次握手:服务端在收到客户端发过来的SYN请求报文后,开始给客户端发送ACK报文和SYN报文,状态置为SYN_RECE 第三次握手:客户端口收到服务端口过来的SYN报文和ACK报文后,状态由原来的SYN_SENT状态变为ESTABLISHED:并且给服务发送一个ACK报文告知

学习TCP/IP - TCP三次握手连接和四次握手断开连接

TCP连接 一.为什么需要TCP 链路层将位流封装成数据帧,同时屏蔽了底层物理层的复杂性; 网络层定义了IP地址,划分了网段,使得源计算机可以快速找到目标计算机,但它无法保证数据准确到达. 所以在传输层定义了TCP协议,它是面向连接的可靠传输协议, 二.TCP如何建立连接 2.1) TCP三次握手建立连接 TCP三次握手创建连接 a. 由于TCP是面向连接的,所以有服务端和客户端之分.服务端先在对应的端口监听(LISTENING), 等待客户端发送的tcp连接请求. b. A机器向B机器发起TC