三次握手

网络-传输层

余生长醉 提交于 2020-03-19 07:28:29
1.常用的应用层协议使用的端口(号): http = TCP + 80 Https = TCP + 443 RDP = TCP + 3389 ftp = TCP + 21 共享文件夹 = TCP + 445 SMTP = TCP + 25 POP3 = TCP + 110 telnet = TCP + 23 SQL = TCP + 1433 DNS = UDP + 53 如何查看服务侦听的端口 netstat -a netstat -an 以数字的形式查看端口 netstat -n 查看建立的会话 netstat -nb 查看建立会话的进程 telnet 192.168.80.100 3389 测试到远程计算机某个端口是否打开 2.ARP/RARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。 逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址。 3.路由选择协议 常见的路由选择协议有:RIP协议、OSPF协议。 RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。 OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法

HTTP相关:TCP/IP、DNS

北城余情 提交于 2020-03-19 01:59:31
最近在看HTTP的书,看得有点慢,而且断断续续的,很多东西看完就忘了。知识点多且零散,感觉要多看几遍才能消化。 TCP/IP协议族按层次分为4层:   应用层:     应用层决定了向用户提供应用服务时通信的活动。   传输层:     传输层为应用层提供处于网络连接中的两台计算机之间的数据传输。   网络层:     网络层用来处理在网络上流动的数据包。   链路层:     链路层用来处理连接网络的硬件部分。 TCP/IP通信传输流: IP协议:   Internet Protocol的作用是把各种数据包传送给对方,有两个条件(MAC地址、IP地址)保证了数据能准确传输给对方。   MAC地址:     网卡所属的固定地址(物理地址) 。IP间通信依赖MAC地址,通信时一般要进行多次中转才能连接对方,中转过程就会用到MAC地址和ARP协议(ARP协议根据对方IP地址,寻找中转设备的MAC地址,通过中转设备传送,从而连接对方)。   IP地址:     指明节点被分配到的地址。IP地址是可以和MAC地址配对的,且IP地址可以变换。 TCP三次握手: 为了准确无误地将数据传送给目标,TCP协议采用了三次握手的机制。发送端先发送一个带SNY(synchronize)标志的数据包给对方,接收端收到后,会回传一个带有SYN/ACK(acknowledgement)标志的数据包表示确认收到

跟着动画来学习TCP三次握手和四次挥手

偶尔善良 提交于 2020-03-18 17:06:42
TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。 本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地地理解TCP交互的本质。 TCP 三次握手 TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己。 张三首先向李四招手( syn ),李四看到张三向自己招手后,向对方点了点头挤出了一个微笑( ack )。张三看到李四微笑后确认了李四成功辨认出了自己(进入 estalished 状态)。 但是李四还有点狐疑,向四周看了一看,有没有可能张三是在看别人呢,他也需要确认一下。所以李四也向张三招了招手( syn ),张三看到李四向自己招手后知道对方是在寻求自己的确认,于是也点了点头挤出了微笑( ack ),李四看到对方的微笑后确认了张三就是在向自己打招呼(进入 established 状态)。 于是两人加快步伐,走到了一起,相互拥抱。 我们看到这个过程中一共是四个动作,张三招手--李四点头微笑--李四招手--张三点头微笑。其中李四连续进行了2个动作,先是点头微笑(回复对方),然后再次招手(寻求确认),实际上可以将这两个动作合一,招手的同时点头和微笑( syn+ack )。于是四个动作就简化成了三个动作,张三招手-

TCP三次握手,四次挥手

对着背影说爱祢 提交于 2020-03-18 14:08:53
TCP三次握手详解及释放连接过程 TCP协议中的三次握手和四次挥手(图解) 暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。 FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。 seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。 在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。 seq是数据包本身的序列号;ack是期望对方继续发送的那个数据包的序列号。 三次握手的过程:

关于三次握手与四次挥手小结

瘦欲@ 提交于 2020-03-17 17:42:12
三次握手 过程 第一次握手:客户端给服务器发送一个 SYN 报文; 第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文; 第三次握手:客户端收到 SYN+ACK 报文之后,回应一个 ACK 报文; 服务器收到 ACK 报文之后,三次握手完成,建立链接。 作用 为了确认双方的接收与发送能力是否正常; 指定自己的初始化序列号,为后面的可靠传送做准备。 为何必须三次握手,不可两次建立连接? 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。 第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。 第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。 所以最少三次才可以让客户端和服务器都确认,双方的发送能力与接收能力都正常 如果少一次握手会怎样? 如果只有两次握手,假如客户端向服务器发送了请求建立连接的报文, 而这个报文由于网络原因在网络中滞留了, 因此客户端收不到服务器的确认报文段, 会重新发送一个请求报文段,而该请求报文段顺利到达服务器, 根据假设的两次握手的机制,服务器给客户端回复了确认之后,两者就建立了连接,

TCP 和 UDP的最完整的区别

蓝咒 提交于 2020-03-17 13:03:16
转自:https://www.cnblogs.com/williamjie/p/9390164.html TCP(Transmission Control Protocol , 传输控制协议) DUP(User Data Protocol, 用户数据报协议) TCP优点与缺点: 可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。TCP的缺点:慢,效率低,占用系统资源高,易被攻击TCP在传递数据之前,要先建立连接,这会消耗时间,而且数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCPyou确认机制、三次握手机制、这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。 UDP优点和缺点: 快,比TCP稍安全 UDP没有TCP的握手,确认,窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传输数据时非常的快。没有TCP的这些机制,UDP比TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击.....UDP缺点:不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时

TCP/IP

筅森魡賤 提交于 2020-03-17 12:25:27
1.TCP/IP协议族分层模型 应用层 直接与用户信息打交道。主要是 HTTP、DNS 协议。 传输层 TCP、UDP 是此层的重要协议。 TCP: 面向连接的,可靠的协议; UCP:无连接的,不可靠的协议。 互联网层(IP层) 与对方计算机之间通过多台计算机或网络设备进行传输时,在多种选择种选择一条传输线路。 IP 协议。 网络接口层(数据链路层) 硬件处理范畴。 2.HTTP协议发送Web网页HTTP请求过程 HTTP–>传输层(把HTTP请求报文分割,打上标记序号和端口号)–>网络层(添加通信目的地 MAC地址)–>链路层 3. 封装 发送端从应用层往下走,接收端从应用层往上走。 发送端在层与层之间传输数据时,每经过一层会打上一个该层所属的头部信息,就是 封装 。 接受层在层与层传输数据时,每经过一层时会把对应的首部去掉。 3. 建立TCP三次握手: Client(客户):主动发起建立的应用进程; Server(服务器):被动等待连接的应用进程。 第一次握手:Client 标志位SYN=1的数据包,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态。 第二次握手:Server明白,发送SYN=1,ACK=1,ack=x+1随机产生seq=y,数据包。 第三次握手:Client明白发送ACK=1,ack=y+1;并发送

TCP和UDP的比较(包含“三次握手,四次挥手”)

允我心安 提交于 2020-03-17 11:12:36
接TCP和UDP编程流程一节 写在前面:这里关于TCP的“三次握手和四次挥手“”描述的不是非常清楚,详细的见后文哦~ TCP和UDP的区别 TCP是面向连接的,可靠的,字节流服务 UDP是无连接,不可靠的,数据报服务 如图(3-1)所示: 1.发送方的send的次数和recv接收方的次数是不对等的; 2.发送方send的次数与底层封装的TCP报文段的个数不对等; 3.接收方如果一次recv未将TCP接收缓冲区中的数据读完,后续的recv会接着读取。 如图(3-2)所示: 1.sendto和recvfrom的次数是相等的; 2.sendto与底层UDP数据报的个数是相等的; 3.一次recvfrom如果没有将一个UDP报文段中的数据读完,则剩余的数据会被丢弃。 ————————————————————————————————————————————— TCP的面向连接 三次握手: 思考:为什么是三次握手?? 四次挥手: 思考:为什么要四次握手?? —————————————————————————————————— TCP的可靠性传输保证: UDP协议 来源: CSDN 作者: 飞流直下 链接: https://blog.csdn.net/weixin_44737923/article/details/103328365

TCP协议,DNS的诞生

﹥>﹥吖頭↗ 提交于 2020-03-17 05:56:45
在通信的过程中,TCP协议处于传输层,这里进行传输可靠的字节流服务。 什么是字节流服务:就是将很大的数据进行分割成以报文为单位的数据包。可靠是指能够将数据准确的传输给对对方。 如何确保准确送达:TCP进行三次握手。握手过程中使用了TCP标志-SYN和ACK。 DNS:为什么不直接使用ip地址进行访问,因为相比较一串纯数字,人类的大脑更加适合记住字母配合数字。所以DNS就是为了让计算机能够将人类编写的域名转译成计算机能够看懂的一串纯数字。 来源: CSDN 作者: 前端xu 链接: https://blog.csdn.net/weixin_40180205/article/details/104873771

很全的linux网络编程技巧

我只是一个虾纸丫 提交于 2020-03-17 03:51:39
1. LINUX 网络编程基础知识 1 1.1. TCP/IP 协议概述 1 1.2. OSI 参考模型及 TCP/IP 参考模型 1 1.3. TCP 协议 3 1.4. UDP 协议 5 1.5. 协议的选择 6 2. 网络相关概念 6 2.1. socket 概念 7 2.2. socket 类型 8 2.3. socket 信息数据结构 8 2.4. 数据存储优先顺序的转换 8 2.5. 地址格式转化 9 2.6. 名字地址转化 10 3. socket 编程 13 3.1. 使用 TCP 协议的流程图 13 3.2. 使用 UDP 协议的流程图 24 3.3. 设置套接口的选项 setsockopt 的用法 31 3.4. 单播、广播、组播(多播) 32 1. LINUX 网络编程基础知识 1.1. TCP/IP 协议概述 协议 protocol:通信双方必须遵循的规矩 由iso规定 rpc文档 osi参考模型:(应-表-会-传-网-数-物) è 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip模型4层: 应用层 {http超文本传输协议 ftp文件传输协议 telnet远程登录 ssh安全外壳协议 stmp简单邮件发送 pop3收邮件} 传输层 {tcp传输控制协议,udp用户数据包协议} 网络层 {ip网际互联协议 icmp网络控制消息协议