当前位置: 代码迷 >> 综合 >> (4.2)TCP三次握手详析、telnet,wireshark示范
  详细解决方案

(4.2)TCP三次握手详析、telnet,wireshark示范

热度:45   发布时间:2023-10-17 02:25:28.0

一:TCP连接的三次握手

    //tcp:可靠的,面向连接的协议

    //udp:不可靠的,无连接的协议

    //大家必须要懂的TCP的三次握手,只有TCP有三次握手【UDP没有】

 //(1.1)最大传输单元MTU

    //MTU(Maximum Transfer Unit):最大传输单元;

    //MTU:每个数据包包含的数据最多可以有多少个字节;1.5K左右;

    //你要发送100K,操作系统内部会把你这100K数据拆分成若干个数据包【分片】,每个数据包大概1.5K之内【大概拆解成68个包】;对端重组;

    //我们只需要知道有 拆包,组包;

    //这68个包各自传送的路径可能不同,每一个包可能因为路由器,交换机原因可能被再次分片;

    //最终TCP/IP协议保证了我们收发数据的顺序性和可靠性;

 //(1.2)TCP 包头结构 

(4.2)TCP三次握手详析、telnet,wireshark示范    

    //a)源端口,目标端口

    //b)关注syn位和ack位【开/关】

    //c)一个tcp数据包,是可能没有包体,此时,总会设置一些标志位来达到传输 控制信息的目的;

//(1.3)TCP 数据包收发之前的准备工作

    //回忆日志操作的步骤:

    //a)打开日志文件

    //b)多次,反复的往日志文件中写信息

    //c)关闭日志文件

    //TCP数据的收发是双工的:每端既可以收数据,又可以发数据;

    //TCP数据包的收发也分三大步骤:

    //a)建立TCP连接[connect:客户端] ,三次握手

    //b)多次反复的数据收发[read/wirte]

    //c)关闭TCP连接[close]

    //UDP不存在三次握手来建立连接的问题。UDP数据包是直接发送出去,不用建立所谓的连接;

 //(1.4)TCP 三次握手建立连接的过程

(4.2)TCP三次握手详析、telnet,wireshark示范   

    //客户端理解成一个人,服务器端理解成一个人,两个人要用电话通话:

    //张三:你好,李四,我是张三 [syn] ,ip,端口

    //李四:你好,张三,我是李四 [syn/ack]

    //张三:你好,李四 [ack]

    //聊正题......

    //a)客户端给服务器发送 了一个SYN标志位置位的无包体TCP数据包,SYN被置位,就表示发起TCP链接,协议就这么定

    //b)服务器收到了这个SYN标志位置位的数据包,服务器给客户端返回一个SYN和ACK标志位都被置位的无包体TCP数据包,协议就这么定的;

    //c)客户端收到服务器发送回来的数据包之后,再次发送ACK置位的数据包,服务器端收到这个数据包之后,客户端和服务器端的TCP链接就正式建立

     //后续就可以进行数据收发了

    //三次握手很大程度上是为了防止恶意的人坑害别人而引入的一种TCP连接验证机制;

 //(1.5)为什么TCP握手是三次握手而不是二次

    //网络诈骗

    //110:客户端 ,你就是服务器

    //伪造来电:110

    //TCP之所以要三次握手,原因可能很多,但不管多少 原因,都是为了确保数据稳定可靠的收发;

    //为什么要TCP三次握手最主要的原因之一:尽量减少伪造数据包对服务器的攻击;

 

    //源ip,源端口 ---------------- 目的ip,目的端口

    //syn------------->

    //<--------syn/ack 【验证源ip和源端口真实存在】

    //ack-------------->

 二:telnet工具使用介绍

    //是一款命令行方式运行的客户端TCP通讯工具,可以连接到服务器端,往服务器端发送数据,也可以接收从服务器端发送过来的信息;

    //类似nginx5_1_1_client.c

    //该工具能够方便的测试服务器端的某个TCP端口是否通,是否能够正常收发数据,所以是一个非常实用,重要,常用的工具

    //telnet ip地址 端口号

 三:wireshark监控数据包

    //wireshark是个软件:分析网络数据包

    //https://www.wireshark.org/download.html

    //automatically start the WinPcap driver at boot time;

    //windows:192.168.1.100

    //乌班图linux:192.168.1.126 9000端口

    //希望wireshark抓 192.168.1.126 9000;

    //host 192.168.1.126 and port 9000

(4.2)TCP三次握手详析、telnet,wireshark示范

 

    //(3.1)TCP断开的四次挥手

(4.2)TCP三次握手详析、telnet,wireshark示范

    // FIN,ACK 服务器->客户端

    // ACK 客户端->服务器

    // FIN,ACK 客户端->服务器

    // ACK 服务器->客户端

  相关解决方案