《图解TCP/IP》—第2章、TCP/IP协议簇

TCP/IP

1960年,美国国防部希望在进行通信时,即使受到攻击,也可以保证通信不会中断

如果对于 一个(通信电路),他上面的 一个节点,如果坏掉,则通信就断掉了。

因此设计出了,我们之前讲过的(分组交换)。 即数据分组,通信可以共享同一条线路。

为了验证(分组交换)技术,做了一个测试: 搭建了一个网络(arpaNet 阿帕网),是互联网的鼻祖。

该测试,不仅证明 分组交换技术的稳定,还顺带研发出: tcp/ip协议。(该协议,最终成为arpaNet的唯一指定协议)


TCP/IP,其实是个(协议簇),包含很多的协议。

  • 应用协议: http、telnet、smtp、ftp、snmp
  • 传输协议: tcp、udp
  • 网际协议: ip、icmp、arp
  • 路由控制协议: rip、ospf、bgp

互联网与TCP/IP

interNet 互联网: 将多个网络组合,使之可以相互通信,从而形成一个更大的网络。

(比如,将两个公司的内网连接 形成一个互联网)

TCP/IP协议簇,就是为了可以使用互联网(即,让多个子网/内网,可以相互通信)

所以,互联网使用的协议 就是tcp/ip; tcp/ip就是互联网的协议。

与OSI对比

在这里插入图片描述

互联网层

互联网层,使用IP协议(IP协议是: 基于ip地址,转发数据)

所有连接到互联网的(主机、路由器),都必须实现IP功能,因为他们必须要实现:数据转发功能。

IP协议,使得:数据可以到达 地球的任意地方,他使用ip地址作为主机的标识

传输层

让(应用程序)之间 可以通信,而且 必须识别是(哪个程序)。
比如(浏览器 要和 浏览器对应),(邮件 要和 邮件对应)…

识别是哪个程序,是借助: 端口号。

tcp
正确的处理: 丢数据、分组数据顺序错乱等问题,保证 两端通信主机的 连接正常。

为了做到这种(可靠的 连接),在(建立连接、断开连接)时,他会多次的 额外的(收发 数据),导致 网络流量的浪费。
而且,协议内部,也是 非常非常复杂的各种逻辑。

他不适合: 视频会议!

udp
udp不会检查: 对方是否连接到网络、数据是否到达 (如果要检查,则需要在app的层面上,额外的代码实现)

适用于: 广播、多播、视频通信(多媒体领域)

应用层

www
浏览器与服务端,使用的协议是:http。 所传输的数据格式是:html
(http在osi中 属于应用层,html属于 表示层)

telNet、ssh
远程登录

snmp
(simple netword manage) 网络管理。

使用snmp的设备(主机,路由器,网桥。。),称为: snmp代理

这个代理里,会存储: (通信数据量)(异常通信)(设备温度)等,这样管理员 就可以及时的检查网络拥堵情况,发现故障。

数据格式

发送

比如A给B发送“早上好”,

应用层

点击“发送邮件”: 将应用层的数据,发送给下一层(传输层)的TCP

发给下一层的数据是: [应用层data]

TCP层

收到的数据是: [应用层data]

tpc会附加一个(tcp首部),包括: (发送端 和 接收端的 端口号 “用来识别主机上的应用“)等

发给下一层的数据是: [TCP首部] [应用层data], 这个数据有个名字(TCP包)

IP层

收到的数据是:[TCP首部] [应用层data]

IP会附加一个:IP首部,包含(发送端 和 接收端的 ip地址)等

发给下一层的数据是: [IP首部] [TCP首部] [应用层data], 这个数据有个名字(IP包)

网卡层(以太网驱动)

加上一个:以太网首部,包含: (发送端 和 接收端的 mac地址)、(以太网类型)等 (以太网/数据链路层/网卡层),好像是一个概念

发给下一层的数据是: [以太网首部] [IP首部] [TCP首部] [应用层data], 这个数据有个名字(以太网包)

接收

网卡层(以太网驱动)

判断该(以太网包)的首部中的mac地址, 看是否是发给自己的数据 (如果不是,则丢弃)

然后再判断(数据类型), 比如, 如果是ip类型, 则将数据去除掉(以太网首部)后, 传给 (处理ip数据)的程序.

ip层

处理和上面是类似的. 判断该包的ip地址, 和自己的ip, 是否匹配, 否则就丢弃

然后, 将数据去掉(ip包首部)后, 传给tcp层处理.

tcp层

计算(校验和), 判断数据已经损坏. 获取(端口号), 从而定位到具体的应用程序

数据接收完毕后, 接收端会发送 (确认回执) 给发送端, 进行反馈.

SNS

SNS: social network service 社交网络. (即时的 将信息发给特定联系人)

当(移动手机/电脑) 在开机时, 运营商服务器就已经 为他设定了具体的ip地址.

当启动(应用程序)时, 会连接到 指定的SNS服务器, (进行 用户密码验证), 然后SNS服务器将数据发给终端.


版权声明:本文为weixin_42712593原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。