• 图说TCP/IP网络协议
  • 发布于 2个月前
  • 186 热度
    0 评论
  • 没逍遥
  • 0 粉丝 34 篇博客
  •   
公司的服务器全部上云端。R国的也要上到AWS,R国跟U国关系紧张,请求不能直接发,要通过搭在S国的跳板机中转,来访问在U国的数据库。于是我们先模拟配置了,并且测试了这个流程。都弄成功了开始R国的上云之路。

然而,我们的模拟测试是一点问题都没有。等到R国正式上的时候,傻眼了。不知道为什么,Android端的请求都没法正常通信,IOS的却可以。排查了很久,先是发现证书不一致,然后升级证书,发现还是有部分用户不能正常访问。最后查出来的R国的DNS是动态的。


出了这么大事故, 测试人员的压力是很大的,虽然责任不在这边。


今天来学习一下TCP/IP的知识,虽然若干年前学校好像学得还可以,这么多年来,又全忘光了。

TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合。
OSI七层和TCP/IP四层的关系

数据传输的流程如下:

如同我向一个人发快递,发送的人,每经过一层,在最外面增加一个包装盒,往下一跳传递。收快递的,每经过一层,撕开最外一层包装盒,往下一跳传递。

就像发快递,要写明收件人的地址,收件人地址。发件人的地址,发件人的姓名。

这就需要IP地址和端口号。

对于特别重要的快递,我们需要确保万无一失,就需要提前通知收件人,他将得到一个快递,并且得到他的确认。这个过程就好比发件人跟收件人打电话。

发件人:我马上要给你发个快递,里面是重要文件,你收到消息赶紧回一个。
收件人:收到。
发件人:我现在就发。
于是,发件人就把快递发出去了。
在这个场景中:
发件人通知了收件人。
收件人得到了确认,他知道此事了,即使丢了快递,他也能要求发件人重发。
发件人通知收件人,他正式发了快递。

这就是TCP的三次握手定则,比较靠谱的传输协议。

IP 地址

TCP/IP 协议网络上的每一个网络适配器都有一个唯一的 IP 地址.
IP 地址是一个 32 位的地址,这个地址通常分成 4 端,每 8 个二进制为一段,但是为了方便阅读,通常会将每段都转换为十进制来显示,比如大家非常熟悉的 192.168.0.1

IP 地址分为两个部分:网络 ID,主机 ID

绝大部分 IP 地址属于以下几类

A 类地址:IP 地址的前 8 位代表网络 ID ,后 24 位代表主机 ID。
B 类地址:IP 地址的前 16 位代表网络 ID ,后 16 位代表主机 ID。
C 类地址:IP 地址的前 24 位代表网络 ID ,后 8 位代表主机 ID。

DNS 是什么?
DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。

一般我们记不住电话本里的电话号码,我们都是记得人的名字。
比如张三,电话是135XXX
我们拨号的时候,电话本里只要找到张三,然后手机自动跟我们拨号135XXX

同理,我们不可能记得各种网站的IP地址,我们只要记住域名就可以了。
举例来说,如果你要访问域名baidu.com,首先要通过DNS查出它的IP地址是151.XXX。
这个过程是DNS服务器自动帮你解析的。
首先,本机一定要知道DNS服务器的IP地址,否则上不了网。通过DNS服务器,才能知道某个域名的IP地址到底是什么。

DNS服务器的IP地址,有可能是动态的,每次上网时由网关分配,这叫做DHCP机制;也有可能是事先指定的固定地址。linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件。

而我们前面发生的事故,是DNS没有解析出域名来,导致通信不畅。
用户评论