最近读完了《图解TCP/IP》,做一下总结加深记忆,后续会写几篇关于TCP/IP的文章。
一.网络基础知识
1.1计算机与网络发展的7个阶段
- 批处理:指事先将用户程序和数据装入卡带或磁带,并由计算机按照一定的顺序读取,使用户所执行这些程序和数据能够一并批量得到处理的方式。
- 分时系统时代:指多个终端与同一个计算机相连接,允许多个用户同时使用一台计算机系统。
- 计算机间通信时代:在分时系统中,计算机与每个终端之间用通信线路连接,这并不意味着计算机与计算之间已相互连接。
- 计算机网络时代:人们开始实验基于分组交换技术的计算机网络,并着手研究不同厂商的计算机之间相互通信的技术。
- 互联网普及时代:“瘦身”与“多供应商连接”,构建更低成本的网络环境,连接异构型计算机的通信网络技术就是现在我们所看的互联网技术。
- 以互联网为中心的时代:许多发展道路各不相同的网络技术正在向互联网靠拢。
- 无论何时何地一切皆TCP/IP的网络时代:TCP/IP是通信协议的统称。
1.2协议
简介:计算机网络体系结构将这些网络协议进行了系统归纳,TCP/IP就是IP、TCP、HTTP等协议的集合。
分组交换协议:分组交换是指将大数据分割成一个个叫做包(Packet)的较小单位进行传输的方法。
标准化:ISO(国际标准化组织)制定了一个国际标准OSI。
OSI参考模型:
- 应用层:为应用程序提供服务并规定应用程序中通信相关细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。
- 表示层:将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。具体来说,就是将设置固有的数据格式转换为网络标准传输格式。不同设备对同一比特流解释可能会不同。主要作用格式保持一致。
- 会话层:负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
- 传输层:起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。
- 网络层:将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成某一个地址。因此这一层主要负责寻址和路由选择。
- 数据链路层:负责物理层面上互联的、节点之间的通信传输。例如与1个以太网相连2个节点之间的通信。将0、1序列划分具有意义的数据帧传送给对端(数据帧的生成与接收)。
- 物理层:负责0、1比特流(0、1序列)与电压高低、光的闪灭之间的互换。
通信处理:
网络通信:
- 单播:1对1通信。
- 广播:消息从1台主机发送给与之相连的所有其他主机。(所有主机限同一个数据链路内)。典型例子电视播放。
- 多播:多播与广播相似,将消息发给多个接收主机。不同之处在于多播要限定某一组主机作为接收端。例子:电视会议。
- 任播:在特定的多台主机中选出一台作为接收端的一种通信方式。
网络构成元素:
- 网卡:网络接口卡(NIC),网络适配器、网卡、LAN卡。
- 中继器:识别0、1序列调整波形进行相应放大与转发。可以在双绞线电缆与光纤电缆之间转换。
- 网桥/2层交换机:数据链路层面上连接两个网络设备。它能够识别数据链路层中的数据帧,数据链路的数据帧中有一个数据位叫做FCS,检验数据。有些网桥能够判断是否将数据报文转发给相邻的网段,这种网桥叫做自学网桥。会记住曾经通过自己转发的所有数据帧的MAC地址,并保存到自己的内存表中。交换集线器(Hub)属于网桥的一种。
- 路由器/3层交换机:网络层面上两个网络、并对分组报文进行转发的设备。网桥是根据MAC地址进行处理。而路由器/3层交换机则根据IP地址进行处理。路由器还有分担网络负荷的作用。具有一定网络安全作用。
- 4-7层交换机:负责处理OSI模型中从传输层至应用层的数据。前端访问分发到后台多个服务器上,前端加一个负载均衡器。这种负载均衡器是4-7层交换机的一种。通信处理的优先级,带宽控制。
- 网关:负责将从传输层到应用层的数据进行转换和转发的设备。它与4-7层一样都是处理传输层及以上的数据,但是网关不仅转发数据还负责对数据进行转换,通信协议翻译。
- 数据传输中,两个设备之间数据流动的物理速度称为传输速率。又称为带宽。衡量带宽,cpu处理能力,网落拥堵状况。
二.tcp/ip基础知识
2.1背景及历史
军用技术
保证通信不中断,分布式通信诞生,分组交换技术诞生。
容灾性较弱的中央集中式网络:
容灾性较强的分组网络:
ARPANET诞生
1969年,验证分组交换技术的实用性,搭建一套网络。该网络被称做ARPANET(阿帕网)。
TCP/IP的诞生
1982年,TCP/IP具体规范最终定下来,并于1983年成为ARPANET网络唯一指定协议。
UNIX系统普及与互联网的扩张。
商用互联网服务
研发互联网最初的目的是用于实验和研究,到了1990年逐渐被引入公司企业及一般家庭。也出现专门提供互联网接入服务的公司(称作ISP),这些都使互联网得到了更广泛的普及。
2.2标准化
简介:TCP/IP 是利用IP进行通信时所必须用到的协议群的统称。
TCP/IP 是先开发程序,后写规格标准。
2.3互联网基础
“互联网”是指由ARPANET发展而来、互连全世界的计算机网络。互联网的协议就是TCP/IP。
结构: 互联网中的每个网络都是骨干网(BackBone)和末端网(Stub)组成的。每个网络之间通过NOC(网络操作中心)相连。如果网络运营商不同,它的网络连接方式和使用方法也会不同。连接这种异构网络需要IX的支持。总之,互联网就是众多异构的网络通过IX互连的一个巨型网络。
连接互联网需要向ISP或区域网提出申请。
2.4TCP/IP分层模型
TCP/IP与OSI参考模型:
硬件(物理层)
简介:TCP/IP最底层负责数据传输的硬件。
网络接口层(数据链路层)
简介:网络接口层利用以太网中数据链路层进行通信,因此属于接口层。
互联网层(网络层)
简介:互联网层使用IP协议,它相当于OSI模型中的第3层网络层。IP协议基于IP地址转发分包数据。
IP:跨越网络传送数据包,使整个互联网都能收到数据的协议。IP还隐含着数据链路的功能。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能实现通信。虽然IP也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此属于非可靠性传输协议。
ICMP:IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送一个异常的通知。ICMP就是为这一功能而制定的。诊断网络健康。
ARP:分组数据包的IP地址解析出物理地址(MAC)的一种协议。
传输层
简介:传输层最主要的功能就是能够让应用程序之间实现通信。
TCP:
TCP是一种面向连接的传输层协议。它可以保证两端通信主机之间的通信。
TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。
还能有效利用带宽,缓解网络拥堵。
为了建立与断开连接,有时它需要至少7次的发包收包,导致网络流量浪费。
为了提高网络的利用率,TCP协议中定义了各种各样复杂的规范,因此不利于视频会议(音频、视频的数据量既定)等场合使用。
UDP:
UDP有别于TCP,它是一种面向无连接传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接网络,则需要在应用程序中实现。
UDP常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。
应用层(会话层以上的分层)
简介:TCP/IP的分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现。
TCP/IP应用的架构绝大多数属于客户端/服务端模型。
提供服务的程序叫服务端,接受服务的程序叫客户端。
www中文叫万维网,是一种互联网上数据读取的规范。有时也叫Web、WWW或W3。
2.5通信示例
数据包
首部:
包、帧、数据报、段、消息:以上5个术语都用来表述数据单位,大致区分如下:包可以说是全能性术语。帧用于表示数据链路层中包的单位。而数据报IP和UDP等网络层以上的分层中包的单位。段则则表示TCP数据流中的信息。最后,消息是指应用协议中数据的单位。
网络传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上层传过来的数据。首部的结构由协议的具体规范详细定义。
发送数据包
示例
- 应用程序处理:发送请求,编码,会话层管理。
- TCP模块的处理:TCP根据应用指示(会话层连接),负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。
- IP模块处理
- 网络接口(以太网驱动)处理
经过数据链路的包
数据包接收处理
- 网络接口(以太网驱动)处理:主机收到以太网包以后,首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是发给自己的包则丢弃数据。
- IP模块的处理
- TCP模块的处理:首先会计算一下校验和,判断数据是否被破坏。然后检查是否在安装序号接收数据。最后检查端口号,确定具体应用程序。
- 应用程序的处理
tcp/ip系列下一篇(数据链路):https://blog.csdn.net/qq_19968255/article/details/83832035
未完待续!----------------------------------------------------------------------------------------