看到一篇大佬的博客,刚好前段时间也有简单了解了一点计算机网络的TCP/IP,就顺便总结一下。
大佬文章链接:
https://blog.csdn.net/ThinkWon/article/details/104903925
计算机网络的自己理解,尽量白话。理解不对,请指正
1. 简单讲述
计算机网络因为很抽象,所以不是很好理解,用生活中举例来说一个场景“你在家,用电脑、手机去请求一个网址或者发送一个微信消息”都会用到计算机网络
你请求百度的网址,百度给你返回一些信息,那么问题来了:
你请求中间发生了什么?返回怎么返回的?
这个时候就涉及到了计算机网络
2. 计算机分层结构
这个地方是有个图的,可是感觉每次看完图就过了,所以这次先写,在放图吧。
从上往下:
应用层
运输层
网络层
数据链路层
注意:部分会将数据链路层划分为数据层和物理层(可能也有不同的叫法),所以也就有了4层或者5层的说法,7层的是ISO模型,此处暂时不管
3. 每一层协议简述(请注意,是简述)
按照请求百度,百度返回值给主机这种行为来大概说一下每层的功能以及部分协议吧。
- 应用层:
这个地方最常见的协议是HTTP和HTTPS了(还有什么email、FTP等等)。
延伸问题(职业测试,真的遇到过,顺便记录一下吧):
问题一:HTTP和HTTPS的端口号一般是多少?
问题二:HTTP和HTTPS请求的区别是什么?
- 传输层:
这个地方最常见的协议就是TCP和UDP了
延伸问题(下面这两个真的是老生常谈):
问题一:TCP和UDP的区别是什么?
问题二:请描述一下三次握手和四次挥手。
- 网络层:
这个地方常见的协议就是IP、ICMP、IGMP了。
延伸问题:
ping使用的协议是——?
- 数据链路层:
这个地方用的比较多的是ARP和RARP协议了
好,下面是放图了
第一张图:
将四层、五层、七层进行了对照
(不用告诉我每层的名字和我说的存在不一样,我知道)
第二张图:
将通信过程与四层进行了对照
4. 数据帧大概的封装和分发
其实计算机底层都是二进制,大家都知道,这个地方需要了解一点东西:
二进制
8比特(bit)
1字节
简单来说,一个二进制位,就是0或1,又称1bit
8个0/1组成就是一个字节
好,讲重点。
这个地方,先放图,不然可能不好懂
最先放上从别人那边复制来的图:简单明了
第二张图:封装
第三张图:分发
这个地方出现2个概念:封装和分用
封装就是你要寄快递,你把这个东西打包一下
分用就是别人要收你的快递,就要拆包裹
我主要想写一下4层,所以封装,我们将上面两个看做一层。
- 封装
对应的操作步骤:
用户a向百度(www.baidu.com)发起请求,传输数据给百度
那么对应这个图来看,就是
1、首先,有个用户数据要传输了,此时对应数据链路层
2、然后,数据要进行网络传输,那么就分为TCP传输还是UDP传输,不同的传输,对应不同的首部信息,这个时候,就要添加上TCP或者UDP的首部信息了,此时对应运输层
3、我们到百度的服务器距离还是很远的,中间会经过好多个路由器,那么怎么走呢?这个时候就到了网络层,会给你进行IP路由寻址(这是一个知识点,不是一言两句就能讲完,知道就好了,我也还没弄清),此时对应网络层
4、好,我们终于到了以太网中,这个时候,就要加上我们的以太网首部信息,此时对应数据链路层
注意:这个时候我们已经不知不觉添加了好多个首部信息,后面这些首部信息中会有报文字段,后面再说。。。。。。。
- 分用
接收方(此处是百度),比如我们进行的是HTTP请求,那么在百度服务器的80端口,就会接收到我们发来的数据报信息
PS:这个地方又提到了端口,简单来说,就是类似人类世界的门牌号,每天有不同的人来敲门,有找你的,有敲错的,还有骚扰你的,这个时候,怎么看是不是找你的?——敲你的门就是找你的,还有通过携带的信息,判断是正经找你还是骚扰你的。
回归正题:
分用就是“拆快递”
1、首先要去掉以太网首部(撕掉快递单)
2、再要去除IP首部(撕掉外包装)
3、最后还要去掉TCP或者UDP首部信息(拆掉盒子)
4、拿到最终的用户数据(收到你的宝贝)
先讲这么多吧,后面打算讲一下下面内容,备注一下,怕忘了。
1、每层主要的协议,报文包含哪些字段,干什么用?
2、IP路由协议(此处要先讲一下网络号)
3、自己出的题,自己写答案呗