Javaweb…网络

TCP/IP图解

2019-05-15  本文已影响0人  __y

1.网络基础知识

1.1 计算机的发展史

计算机发展大致经过这几个时代,一开始计算机只是用作大型运算,后来发展为普通民用的计算机。早期的计算很笨重,处理速度也慢,后来经过人们的改良有了以下几个阶段

1.2 网络分层

1.3 电话交换与分组交换

网络通信的方式有两种:电话交换和分组交换

1.4 根据连接的类型分类

网络分为两类:

1.5 根据接受端数量分类

网络通信中,根据目标地址的个数及其后续的行为对通信进行分类。如广播,多播

1.6 地址

TCP/IP通信中使用MAC地址、IP地址、端口号等信息作为地址标识。地址具有以下特性

1.7 网络的构成要素

image.png

1.7.1 数据链路与通信媒介

计算机之间需要通过电缆互相连接。电缆可以根据数据链路的不同选择不同的对应的电缆。(像我们平时说的以太网,其实就是指一种数据链路。其通信媒介有同轴电缆、双绞线电缆、光纤电缆等等)
ps:

1.7.2 网卡

一个硬件设备,用来连接网络

1.7.3 中继器

将电缆传过来的电信号或者光信号经由中继器的波形调整和放大传给另一个电缆。作用在OSI模型的第一层,物理层面上延长网络的设备。
有多个端口的叫做集线器。每一个端口都是中继器

1.7.4 网桥/2层交换机

网桥是在OSI模型上的第二层-数据链路层上连接两个网络的设备。将识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧发给相连的一个网段
有些网桥能够判断是否将数据包转发给相邻的网段,这种网桥称为自学式网桥。
以太网等网络中经常使用的交换集线器(Hub),现在基本也属于网桥的一种。交换集线器中连接电缆的每个端口都能提供类似网桥的功能

1.7.5 路由器/3层交换机

路由器作用于OSI的第3层模型。网络层面上连接两个网络,并对分组报文进行转发。根据IP地址转发

1.7.6 4~7层交换机

4-7层交换机负责处理OSI模型中的从传输层至应用层的数据。用TCP/IP分层模型来表述。4~7层交换机就是以TCP等协议的传输层及其上面的应用为基础,分析手法数据,并对其进行特殊处理(可以在这些层中做负载均衡)。
此外,在网络比较拥堵的时候,优先处理像语音这种实时性比较高的时候的需求,放缓处理像邮件等稍有延迟也并无大碍的通信请求。这种处理称为带宽控制

1.7.7 网关

网关是负责将传输层到应用层的数据进行转换和转发的设备。不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或者应用层网关。在两个不能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。
举例:
手机邮件和互联网邮件互相转发。通过邮件网关翻译成双方熟悉的语法语言(协议)
图解

image.png

1.8 现代网络实态

2.TCP/IP基础知识

学一个东西要知道东西怎么来的,解决什么问题的。TCP/IP的出现,是为了实现一个容灾性强,分布式的网络。
TCP/IP也有自己的模型。我们熟悉的四层模型;物理层、网络层(IP、ICMP、ARP)、传输层(TCP、UDP)、应用层(http、stamp、ftp,SSH、TELNET);

3.数据链路层相关技术

3.1 MAC地址

MAC地址用于识别数据链路中互连的节点。具有唯一性

3.2 共享介质网络

共享介质网络指的是由多个设备共享一个通信介质的一种网络。采用半双工通信,并有必要对介质进行访问控制。有两种方式:

3.3 非共享介质网络

网络中的每个站通过交换机直连,由交换机负责转发数据帧。这种方式会使计算机与交换机端口之间形成一对一的链接,即可实现全双工通信。

3.4 全双工、半双工

全双工的意思是既可以接受数据也可以发送数据,而半双工就是同一时间只能接受数据或者发送数据(类似无线电收发器,若两端同时说话,是听不见对方说话的。)

4.IP协议

4.1 IP与数据链路层的关系

数据链路层提供直连两个设备之间的功能。网络层的IP则负责在没有直连的两个网络之间进行通信传输。IP协议相当于给网络提供了行程表;而数据链路则提供了车票,飞机票等等。

4.2 IP基础知识

4.3 IP地址的定义

IPV4地址由32位正整数组成。由网络号,主机号组成。网络号表示该网络处在哪一个网段;主机号则表示是哪台机子。

4.4 路由控制

实现IP通信的主机和路由器都必须持有一张路由控制表,它指明了目标地址要经过的哪些路由,哪些主机。

4.5 IP报文的分片和重组

4.6 IPV6

IPV6由128位组成。是为了根本解决IPV4地址耗尽的问题而被标准化的网际协议。

5. IP协议相关技术

5.1 DNS

DNS可以将我们输入的地址转化为IP地址。由于IP地址并不好记。因此TCP/IP世界从一开始就已经有了一个叫做主机码的东西。当我们进行网络通信的时候,系统自动将主机名转换成具体的IP地址。为了实现这个功能,通常会利用一个叫做host的数据文件。DNS可以说是一个维护了域名和IP地址映射关系的一个数据库

5.2 域名的构成

DNS的域名每一个域名都有自己服务器,他们呈树形结构。其中根服务器拥有所有的域名,我们访问的时候首先会去根服务器记性查询,根域名服务器会将想查询的地址返回,让你去对应的域名服务器找到对应的域名然后转成IP地址。(如果找不到就会递归到上层服务器然后遍历)

5.3 ARP

ARP是一种解决地址问题的协议。用来映射IP地址和MAC地址之间的关系。它的工作原理是:发送一个ARP一个请求,然后会广播同一个链路层的所有主机。如果是目标IP地址与其中的一个主机相同,那么这个主机就会返回一个ARP响应,同时带上自己的MAC地址给ARP请求。(为了避免发送多次请求,一般会将这种映射关系缓存起来,可以放在接收主机端。)

5.4 为什么同时需要IP地址和MAC地址

5.5 RARP

RARP将MAC地址定位IP地址的一种协议。例如将打印机服务等小型嵌入式设备接入到网络就会经常用到。

5.6 ICMP

ICMP是一种诊断网络是否正常工作,以及遇到异常的时候进行问题诊断的协议。

5.7 DHCP

动态地为每一台主机设置IP地址。我们会先准备一个DHCP服务器,当有新的物理机连进来的时候,就会动态地为这台电脑进行IP分配。生活中,我们的DHCP是路由器,因为一个家庭的话主机数不会太多。但是如果是大型网络的话,就不可以用路由器了。一般采用DHCP中继代理

5.8NAT

NAT(NetWork Address Translator),从单词的翻译来说就是网络地址的翻译者。就是将本地网络中使用私有地址,在连接互联网的时候转而使用全局IP地址的技术。由此可以实现,一个全局IP地址和多个主机通信。
它的工作机制是。访问外网的时候,私网会将自己的IP地址替换成全局IP地址(源地址),目标地址不变

5.9 NAT-PT(NAPT-PT)

NAT-PT技术是将IPV6的首部转换成IPV4的首部的一种技术,用于兼容IPV4和IPV6

5.10 IP隧道

IP隧道是一种兼容IPV4和IPV6之间通信的一种管道。假设A(6),B(4),C(6)。中间有一个4,A,C想要通信的话,就需要一个隧道,在通讯的时候加上IPV6的首部。

6.传输层

传输层有两大协议:TCP、UDP。一般通信的模式是客户端-服务端模式,以端口的形式区别应用。

6.1 UDP

6.2 TCP

如果想要实现可靠的连接,就要设想在恶劣环境下的一系列问题;比如说:数据的破坏、丢包、重复、以及分片顺序混乱等问题。
TCP通过校验和、序列号、确认应答、重发控制、连接管理、以及窗口控制解决等实现可靠性传输。

6.2.1 通过序列号和确认与应答提高可靠性

A->B:此时B会发一个ACK消息告诉A,收到请求了。这样就能确保A的数据已经发送到B了,TCP利用确认应答机制实现了可靠的数据传输;如果一段时间没有收到ACK,那么A就会尝试重发。。

6.2.2 重发超时如何计算

TCP要求不论处在何种网络环境下都要提供高性能通信,并且网络如何拥堵,都要保持可靠连接这个特性。为此,每次发包时都会计算返回时间以及其偏差。将往返时间 +偏差。重发超时就是比这个要稍大一点的值。
重发以后如果还没有收到应答,就会继续发送。此时等待应答的时候会以2倍,4倍的指数函数延长。达到一定次数以后,如果没有任何确认应答返回,就会判断为网络或者对端主机异常。

6.2.3 连接管理

TCP建立数据通信之前会发一个SYN包作为建立连接的请求等待确认认答;在通信结束的时候会进行断开连接的处理(FIN包)

6.2.4 TCP以段为单位发送数据

在TCP建立连接的时候,建立的过程中会确认发送数据包的最大消息长度(MSS);两端的主机在建立请求的时候,会在TCP首部中写入MSS选项,告诉对方自己的接口所容纳的MSS大小,然后取两者较小的值投入使用

6.2.5 利用窗口控制提高速度

TCP以一个段为单位,每发一个段进行一次确认应答的处理。这样的传输方式有一个缺点,那就是包的往返时间越长,通信性能越低(因为需要对方的应答,才可以继续发送。)
为了解决这个问题,引入了窗口的概念。窗口是指可以发送一段序号的数据。比如说(1~4000)。窗口大小指的无需等待确认应答而可以继续发送数据的最大值。这个机制使用了大量的缓冲区(缓存),将没有确认应答的全部放进缓存区里。
窗口控制与重发控制
如果在传输过程中出现段丢失

6.2.6 流控制

发送端会根据自己的实际情况发送数据。但是,接收端可能收到的是一个毫无关系的数据包,又可能会在处理其他问题上花费一定的时间。甚至在高负荷情况下无法接收本应该接收的数据。这样又会触发重发机制。从而导致网络流量浪费。
因此TCP提供了一种机制可以让发送端根据接收端的实际接收能力控制发送的数据量。这就是流控制
接收端会告诉发送端自己的可以接收的数据量大小。为了防止无法通信的问题出现,发送端主机会时不时的发送一个叫做窗口探测的数据段,来获取最新的窗口大小信息

6.2.7 拥塞控制

TCP为了防止网络瘫痪,在通信一开始的时候会通过一个叫做慢启动的算法得出数值,对发送数据量进行控制。其工作机制如下:

6.2.8 提高网络利用率的规范

其实可以从两个方面去想:

7.应用层

和我们开发Web项目比较相关联的知识点有以下。

7.1 WWW

WWW定义了三个重要的概念,分贝时访问手段与位置(URI)、信息的表现形式(Html)、以及信息转发(Http)。

上一篇 下一篇

猜你喜欢

热点阅读