文章目录

一、TCP/IP出现的背景及其历史

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他

1.从军用技术的应用谈起

下面是容灾性较弱的中央集中式网络
《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_02

下面的是容灾性较强的分组网络
《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_03

2.ARPANET的诞生

3.TCP/IP的诞生

4.UNIX系统的普及与互联网的扩张

5.商用互联网服务的启蒙

二、TCP/IP的标准化

TCP/IP为网络协议族
《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_04

三、互联网基础知识

1.互联网的定义

2.互联网与TCP/IP的关系

3.互联网的结构

《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_05

互联网中的每个网络都是由骨干网(BackBone)和末端网(Stub)组成的。
每个网络之间通过NOC相连。
如果网络的运营商不同,它的网络连接方式和使用方法也会不同,连接这种异构网络需要有IX的支持。
互联网就是众多异构的网络通过IX互联的一个巨型网络。

4.ISP和区域网

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_06

四、TCP/IP协议分层模型

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_07

1.OSI参考模型注重:通信协议必要的功能是什么;TCP/IP则更加强调:在计算机上实现协议应该开发哪种程序

2.硬件(物理层)

TCP/IP的最底层是负责数据传输的硬件,这种硬件就相当于以太网或电话线路等物理层的额设备

3.网络接口层(数据链路层)

网路接口层利用以太网中的数据链路层进行通信,因此属于接口层。
驱动程序是在操作系统与硬件之间起桥梁作用的软件。计算机的外围设备或扩展卡,不是直接插到电脑上或者电脑的扩展槽上就能马上使用的,还需要有相应驱动程序的支持。

4.互联网层(网络层)

互联网层使用IP协议,相当于OSI模型中的第3层网络层。
IP协议基于IP地址转发分包数据。

TCP/IP分层中的互联网层与传输层的功能通常由操作系统提供。
尤其是是路由器,他必须得实现通过互联网层转发分组数据包的功能。
《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_08

1)IP地址

IP是分组交换的一种协议,通过IP地址,相互通信的主机之间不论经过怎样的底层数据链路都能实现通信,但是它不具有重发机制,即使分组数据包未能够达到对端主机也不会重发,因此,它属于非可靠性传输协议

2)ICMP协议

IP数据包在发送途中一旦发生异常,导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知。
有时候也被用来诊断网络的健康状况。

3)ARP协议

从分组数据包的IP地址中解析出MAC地址的一种协议

5.传输层

传输层最重要的功能就是能够让应用程序之间进行通信
计算机内部,通常同一时间运行着多个程序,为此,必须分清是哪些程序与哪些成雪进行通信,识别这些应用程序的是端口号
《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_09

1)TCP

TCP是一种面向有连接的传输层协议。可以保证两端主机之间的通信可达。
优点:
TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况;
TCP还能够有效利用带宽、缓解网络拥堵;

缺点:
为了建立与断开连接,有时候需要至少7次的发包收包,导致网络流量的浪费;
不利于视频会议,是由于TCP协议中定义了各种各样复杂的规范

2)UDP

UDP是一种面向无连接的传输层协议。
特点:
不会关注对端是否是真的收到了传送过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现

UDP常用于分组数据较少或多播,广播通信以及视频通信等多媒体领域。

6.应用层(会话层以上的分层)

在TCP/IP的分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现,这些功能可以是由一个单一的程序实现,也可以由多个程序实现。
TCP/IP的应用程序功能,不仅可以实现OSI模型中应用层的内容,还可以实现会话层与表示层的功能

《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_10

TCP/IP应用的架构绝大多数属于客户端/服务端模型。
提供服务的程序叫服务端
接受服务的程序叫客户端
在这种通信模式中,提供服务的程序会预先被部署在主机上,等待接收任何时刻客户可能发送的请求;客户端可以随时发送请求给服务端,若服务端正在处理异常,那么客户端可在等待片刻后重发一次请求。

1)WWW

《图解TCP/IP》学习——第二章TCP/IP基础知识_IP_11

《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_12

2)电子邮件E-mail

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_13

发送电子邮件用到的协议是:SMTP(Simple Mail Tranfer Protocol)
电子邮件的格式由MIME协议扩展以后,就可以发送声音、图像等各式各样的信息,MIME属于OSI的表示层。

3)文件传输FTP

《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_14

《图解TCP/IP》学习——第二章TCP/IP基础知识_IP_15

FTP:File Transfer Prototol,传输过程中可以选择用二进制方式还是文本方式
在FTP中进行文件传输会建立两个TCP连接
其一是:发出传输请求时所用到的控制连接
其二是:实际传输数据时所要用到的数据连接

4)远程登陆TELNET与SSH

《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_16

Telnet:Teletypewriter network
SSH:Secure shell

5)网络管理(SNMP)

《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_17

在TCP/IP中,SNMP属于应用层协议,MIB属于表示层协议
《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_18

五、TCP/IP分层模型与通信示例

从应用层到物理媒介位置数据处理的流程是如何的?

1.数据包的首部

《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_19

为协议提供的信息为包首部,所要发送的内容为数据

在下一层的角度看,从上一层收到的包全部都被认为是本层的数据

五个用来表述数据的单位:
:是全能型述语;
:表示数据链路层中包的单位;
数据包:是IP和UDP等网络层以上的分层中包的单位;
:是TCP数据流中的信息;
消息:是应用协议中数据的单位;

包首部就是协议的脸?
网络传输的数据包=协议所要用到的首部+上层传过来的数据;
首部的结构由协议的具体规范详细定义,相互通信的两端计算机如果在识别协议的序号以及校验和的计算方法上不一样,就根本无法实现通信。

2.发送数据包

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_20

对于主机A的发送端而言:

1)应用程序的处理

应用程序将“早上好”进行编码处理,egUTF-8等,相当于OSI的表示层功能。
应用在发送邮件的那一刻建立TCP连接,然后利用TCP连接发送数据,它的过程首先是将应用的数据发送给下一层的TCP,再做实际的转发处理。

2)TCP模块的处理

TCP根据应用的指示,负责建立连接、发送数据以及断开连接,提供端对端的额可靠传输。
需要给应用层数据的前端加上一个TCP首部,TCP首部包括的内容是:
源端口号,目的端口号:用于识别发送主机跟接收主机上的应用程序;
序号:用以发送的包中哪部分是数据;
校验和:用以判断数据是否被损坏。

3)IP模块的处理

IP将TCP传过来的TCP首部和TCP数据合起来当作自己的数据,并在TCP首部的前端加上自己的IP首部。
IP首部中包含接收端IP地址以及发送端UP地址,并且还可以判断后面的数据是TCPorUDP。

IP包生成后,参考路由表决定接收此IP包的路由或主机(IP包是发送给路由器或者主机网络接口的驱动程序)。并且利用ARP协议知道对端的MAC地址,将MAC地址和IP地址交给以太网的驱动程序,实现数据的传输

4)网络接口(以太网驱动)的处理

IP包+以太网首部来进行处理。
以太网的首部包含:接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议,尾部再添加FCS(目的是为了判断数据包是否由于被破坏)。

FCS:Frame Check Sequence

经过数据链路的包
《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_21
《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_22

总结一下:
a)每个包首部至少有2个信息:其一是,发送端和接收端地址;其二是上一层的协议类型。
b)以太网(物理层+数据链路层)用MAC地址,IP用IP地址,TCP/UDP会用端口号识别两端主机的地址。
c)每个分层的包首部中还包含一个识别为,是用来识别上一层协议的种类信息,eg:以太网首部中的以太网类型,IP中的协议类型以及TCP/UDP中两个端口号都起着识别协议类型的作用。

对于主机B的接收端而言:

5)网络接口(以太网驱动)的处理

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_23

6)IP模块的处理

《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_24

7)TCP模块的处理

《图解TCP/IP》学习——第二章TCP/IP基础知识_首部_25

《图解TCP/IP》学习——第二章TCP/IP基础知识_IP_26

8)应用程序的处理

《图解TCP/IP》学习——第二章TCP/IP基础知识_TCP_27

当代互联网中的一个应用
《图解TCP/IP》学习——第二章TCP/IP基础知识_其他_28