计算机网络笔记之TCP/IP 协议

Posted better_hui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络笔记之TCP/IP 协议相关的知识,希望对你有一定的参考价值。

目录

 

 

一、计算机分层结构

1、七层协议

2、物理层

3、数据链路层

4、网络层

5、传输层

6、应用层

二、TCP/IP

1、TCP/IP含义

2、数据包

3、数据处理流程

三、TCP & UDP

1、端口号

2、TCP标志位

3、三次握手

4、四次挥手

5、确认应答

四、IP协议

1、IP地址

2、分类

3、广播地址

4、子网

5、子网掩码

6、超网

7、路由

五、IP协议相关技术

1、DNS

2、ARP (Address Resolution Protocol)

3、RARP

4、DHCP


 

 

一、计算机分层结构

1、七层协议

img

img

2、物理层

物理层面的基础设施,如网线、光纤等

3、数据链路层

以太网规定,接入网络的设备必须具备网卡接口,数据的流转必须是从一块网卡到另一块网卡,网卡在出厂前会烧制一个唯一的身份标识,这就是MAC地址,是网卡的物理地址,唯一且固定。

该分层常见的有ARP协议。

4、网络层

按照以太网的规则我们可以使用MAC向外发送数据,理论上,我们的电脑网卡可以找到世界上另外一块网卡连线并发送数据。但是以太网采用广播的方式,一是效率低 ,二是不能跨域子网。

所以,我们需要找到一种方法区分MAC是否在同一个子网上,如果在一个子网下,我们就广播,否则就路由。这就引出了网络层,网络层引入了一套新的地址方案,这就是IP地址。

IP地址,是网络地址,由网络管理员分配。

MAC是物理地址,绑定于网卡。

该分层常见的有IP、ICMP协议。

5、传输层

IP地址帮忙我们路由,MAC帮我们确定唯一的网卡地址。这样两台计算机可以连通了,但是另外一个问题出现了,电脑上不止运行了一个程序,我们如何区分例如QQ和微信的网络请求呢?我们需要参数来区分,这就是端口。不同的程序绑定在不同的接口上。

我们通过IP/MAC/PORT,就可以实现程序到程序的网络通信了。

该分层常见的有UDP、TCP协议。

6、应用层

程序收到了传输层的数据,接下来就是解包数据了。数据按照什么格式来解读,就催生了应用层的协议:HTTP/EMAIL/FTP等

img

 

二、TCP/IP

1、TCP/IP含义

狭义上来讲指的是两种协议,但是广义上指的是协议群,包含了一系列的协议。

img

2、数据包

包:全能性术语

帧,数据链路层中包的单位

数据包,网络层以上分层中包的单位

段,TCP数据流中的信息

消息,应用层协议中数据的单位

每个分层中,都包含了两部分:首部和数据。首部包含了目标地址、源地址、下层的协议信息。数据,是收到的下层数据。

img

3、数据处理流程

img

1、应用程序处理

对数据进行编码,建立连接发送数据

2、传输层处理

根据应用层建立并管理连接,并添加TCP首部

3、网络层处理

IP模块添加IP首部,形成IP包后,参考路由控制表决定路由或者主机

4、数据链路层处理

添加以太网首部,生成以太网数据包,通过一系列的路由跳转,传输给对端的

5、数据链路层处理

主机收到以太网数据包,判断MAC,决定处理或者丢弃

6、网络层处理

IP模块接收到数据后,判断IP是否处理,如果匹配则发送给对应的传输层,否则再次路由

7、传输层处理

接收数据,并传给指定端口的程序

8、应用程序处理

解析数据,展示内容。

三、TCP & UDP

传输层的典型协议。TCP、UDP

TCP : 面向连接,可靠的流协议。收发数据前先建立连接。占用系统资源较多

UDP: 非连接的,非可靠的数据包协议。占用系统资源少

通过IP地址、端口号、协议号进行通信识别

img

① 和② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。

③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。

此外,当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(TCP 和 UDP)。

 

1、端口号

端口号的确定有两种方法:静态方法,应用程序指定;时序分配法,操作系统动态分配。

不同的传输层协议,可以使用相同的端口号。

2、TCP标志位

SYN(synchronous建立联机);

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

3、三次握手

三次握手请求方和接收方确认都有接收数据的能力。

img

 

1、客户端发送SYN = 1 ,seq = J ,服务端通过SYN = 1 ,确认客户端要求建立连接,且有发送数据的能力 。

2、服务端发送SYN =1 , ACK = 1 , ACK = J +1 ,seq = K ,客户端确认服务器有接收和发送数据的能力

3、客户端发送ACK = 1 ,ack = K+1 ,服务端确认客户端有接收数据的能力。

4、四次挥手

img

 

1、客户端发送FIN = M ,告诉服务端,我完事儿了,可以结束了

2、服务端发送ack = M+1 , 告诉客户端,知道了

3、服务端发送FIN = N , 告诉服务端,我也完事儿了,可以结束了

4、客户端发送ACK = 1,ack = N+1 ,确认断开

5、确认应答

TCP协议中,服务端在收到数据后,会发送ACK确认应答。

客户端一定时间内没有收到应答,则认为消息丢失,将发起重试。

序列号是按照顺序给发送数据的编号

img

四、IP协议

网络层的典型协议,实现终端节点之间的通信,是点对点的通信。

数据链路层,是在同一链路内的数据流转,不能跨链路,路由1 到 路由 2 , 路由2 到 路由3 , 是两个链路

网络层,是可以跨链路的

IP大致分为三大作用模块:IP寻址、路由、IP分包和组包。

1、IP地址

IP地址是为了区分MAC是否属于同一子网,由网络网管员分配的网络地址。

IP地址由网络标识和主机两部分标识组成,相同网络标识下,主机不可重复。

2、分类

A类 : 0开头 , 0.0.0.0 - 127.0.0.0 前8位是网络标识

B类 : 10开头 , 128.0.0.0 - 191.255.0.0 , 前16位是网络标识

C类 : 110开头 , 192.0.0.0 - 223.255.255.0 ,前24位是网络

D类 : 1110开头 , 224.0.0.0 - 239.255.255.255 ,没有主机标识,常用语多播

3、广播地址

广播地址用于同一链路中主机间发送数据包,将IP地址的主机位全部置 1 ,则是广播地址

4、子网

子网就是将主机地址的几位,拿出来做网络标识,将网络划分为若干个子网。

      1、节约IP资源,比如一个C类地址,可以容纳256位主机,但是该企业只有20台主机,那么236个主机地址就浪费了

      2、减少网络流量,优化性能。隔离数据在整个网络内的广播,提高信息传输速率。

5、子网掩码

子网掩码,又叫网络掩码,用来指明一个IP地址的哪些位标识的是主机所在的子网,可以看出多少位是网络标识,多少位是主机号。

6、超网

超网就是将几个小的子网,组成一个大的网络。

7、路由

发送数据包时使用的是网络层地址,然而仅有IP地址是无法连接到对端目标的。而需要通过一系列的路由,这个过程我们称之为路由过程,保存路由信息的就是路由控制表。

路由控制表有两种方式:管理员手动设置 、路由器间交互自动刷新

img

五、IP协议相关技术

1、DNS

网址 与 对应IP地址的管理系统,我们称之为DNS (Domain Name System)

2、ARP (Address Resolution Protocol)

在链路层发送数据,需要知道对端或者路由的MAC地址 , ARP协议就是已目标IP地址为线索,用来定位下一个应该接受数据分包的网络设置对应的MAC地址。

3、RARP

将ARP反过来,从MAC地址定位IP地址。

4、DHCP

动态IP分配,Dynamic Host Configuration Protocol

 

 

 

 

 

 

 

以上是关于计算机网络笔记之TCP/IP 协议的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络基础之笔记二(TCP/IP)

java学习笔记之网络编程

阅读笔记《图解HTTP》之网络基础概念

Linux运维之道之网络基础学习笔记1.1

TCP/IP协议原理与应用笔记27:网际协议(IP)之 选项(Options)

Python Web学习笔记之TCP/IP协议原理与介绍