分享

网络协议实战教程01:TCPIP数据传输

 程序员小谭 2022-03-02

测试奇谭,BUG不见。

大家好,我是谭叔。

文接上回,本期重点理解TCP/IP协议的数据传输。注意,是理解,而非死记硬背。

理论

1. TCP/IP协议是一大堆协议的集合

比如熟悉的TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传输协议)、HTTPS(安全的 HTTP)、SSL(安全套接字层)、SMTP(简易邮件传输协议)、FTP(文件传输协议)、NTP(网络时间协议)等等。

只不过,因为TCP、IP协议是两个很重要的协议,故用他俩命名了。

2. TCP/IP协议分为四层

即,数据传输一次主要经历以下4个步骤,从上到下为:应用层,传输层,网络层,链路层。

还有一种是教科书里常见的的OSI七层模型。

作为测试,无需过多关心七层OSI模型,掌握TCP/IP的四层即可。

实战

访问测试奇谭的官网testtalking.com,并用Wireshark软件(自行下载并安装)抓包。

看图,和下面的理论做对应理解。

1. 应用层

作用定义数据格式并按照对应的格式解读数据。

操作:选中Wireshark抓的包,展开Hypertext Transfer Protocol。我们能看到,应用层定义了HTTP协议来规范数据格式,定义了请求数据格式为Accept,当对方接收到请求后,就知道该用什么格式来解析和处理。

理解:你想白嫖测试奇谭的项目,我给了规则——必须关注我。那么,你就必须要关注我。

2、传输层

作用定义端口,标识应用程序身份,实现端口到端口的通信

操作:展开Transmission Control Protocol。我们可以看到,TCP协议定义了80端口,当数据包到达主机(testtalking服务器)以后,就可以根据端口号找到对应的应用。

理解:你要关注测试奇谭。但我有测试奇谭、奇谭测试、测奇谭试几个号,可不能关注错了。

另外,这里还涉及到一道高频面试题:TCP和UDP的区别。

他俩,最主要的区别就在传输层。UDP协议没有确认机制,数据包一旦发出,无法知道对方是否收到,可靠性差;TCP协议可以简单理解为有确认机制的UDP协议,即每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。

理解:UDP——你点了关注,但并不知道真的关注上了没;TCP——你点了关注,OK,谭叔确认了你的眼神。

tips:请记住TCP的这个特点,下一篇文章会用到!

3、网络层

作用定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由。

操作:展开Internet Protocol。这个简单,IP协议定义了地址,告诉你数据要传输到哪个目的地(IP为121.5.121.205的testtalking的服务器)。

理解:关注了测试奇谭,你和谭叔勾搭上了。

4、链路层

作用对电信号进行分组并形成数据帧,并以广播的形式通过物理介质发送给接收方。

操作:展开Ethernet。我们可以看到,网卡Ethernet地址就是数据包的发送MAC地址(Src:本机电脑)和接收MAC地址(Dst:testtalking服务器)。

有了地址以后,以太网采用广播形式,把数据包发给接收方。接收方会读取目标MAC地址(Source),并和自己的MAC地址进行对比。如果相同就做下一步处理;如果不同,就丢弃这个包。

没了。

四层协议,就是这么简单!

最后,再附送一张让你脑壳疼的分层图。

tips:看看就好~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多