098 网络基础知识

Posted xichenhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了098 网络基础知识相关的知识,希望对你有一定的参考价值。

关于计算机网络的知识是一个专门的学科。这里只简单介绍计算机网络基础知识。

一、C/S架构和B/S架构

1.1 C/S架构

C:client 客户机 S:server 服务器

所谓C/S架构就是客户机/服务器,就是一些联网的电脑应用程序所采用采用的架构。

用户通过下载客户机去访问服务器的资源,使用客户机和服务器之间产生数据交互

1.2 B/S架构

C:browser 浏览器 S:server 服务器

C/S架构普遍使用在网页中。

用户通过浏览器进行浏览网页,访问服务器中的资源,完成一些操作。如天猫,淘宝,百度,京东的网页等。

二、计算机网络模型

2.1 OSI七层模型

OSI(开放系统互连参考模型)七层模型是ISO(国际标准化组织)制定的标准网络参考模型

关于OSI七层模型,不做过多介绍,想要了解百度一大把资料。这里只是说下有这么个东西。

  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

2.2 因特网五层模型

真正Internet使用的是从OSI七层模型中的五层模型,也有的人把五层模型归结为四层模型,其实都差不多

五层模型:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

四层模型

  • 应用层
  • 传输层
  • 网络层
  • 物理链路层

技术图片

三、介绍五层模型中各层作用

这里所说的内容都是博主自己的理解。如有错误,请小声bb。

物理层

通过物理传输介质传输高低电平信号,计算机表示为0和1。

数据链路层

把 数据封装成帧。每一数据帧分成:报头head和数据data两部分
报头: 固定18个字节,6:发送者地址/6:接收者地址/6:数据类型

**mac地址** :发送者,接收者地址,就是mac地址。每块网卡都有一个唯一mac地址:12位16进制数表示(前六位是厂商编号,后六位是流水线号)

网络层

IP地址:ipv4:32位2进制表示:点分十进制表示 从0.0.0.0到255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6

子网掩码:通过子网掩码和ip判断两个ip是否处于同一个网段,通过ip地址和子网掩码做按位与运算

ARP协议:广播的方式发送数据包,获取目标主机的mac地址

IP(网际)协议 通过 ARP(地址解析)协议 解析IP数据报得到对端主机地址

传输层

TCP(传输控制)协议: 建立面向连接的可靠传输通路三次握手四次挥手),向对端主机地址的端口号发送数据,需要ACK响应,效率低,不会丢包,有快重传等机制。

UPD(用户数据报协议): 不需要建立连接,可以直接向对端主机地址的端口号发送数据,不需要响应,效率高,容易丢包

端口:端口范围0-65535,0-1023为系统占用端口。通过ip+子网掩码唯一确定一台设备,通过ip+子网掩码唯+端口号唯一确定一个软件。

下面会详细说TCP建立连接过程

应用层

HTTP(超文本传输)协议

DNS(域名系统):提供域名解析服务

FTP(文件传输)协议

四、TCP协议建立连接

tcp协议:

面向连接的可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

udp协议:

不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

tcp报文

技术图片

tcp三次握手和四次挥手

为什么说TCP协议是面向连接的可靠传输。一方面原因是,TCP需要建立可靠的连接,而面向连接就是我们所说的三次握手和四次挥手。另一方面原因是,可靠传输,它体现在对每一条数据包都需要进行ack确认,确保对端主机端口收到该数据包。如果没有收到就会有一系列的类似快重传等机制,会恢复数据的传输。如果长时间无响应则会断开连接。

tcp协议建立连接的过程被形象的喻为三次握手

释放连接时的过程被形象的喻为四次挥手

技术图片

三次握手:

  • 第一次握手:当客户机没有对服务器发起连接请求时,服务器会一直处于监听状态,时刻等待客户机发起的请求,直到客户机发起连接请求。(服务器仿佛一个渣男,谁要跟他好他都接受)
  • 第二次握手:服务器会对客户机发起的连接请求做出确认响应并建立数据发送通路,同时服务器尝试和客户机建立数据接收通路。
  • 第三次握手:当客户机收到建立数据发送通路的确认请求后,会对 服务器发送的建立数据接收通路请求做出确认。

此时经过三次握手才算正式的建立了通讯传输的连接

数据传输:

  • 当客户机对服务器发送信息时必须要等到服务器的确认才算成功接收数据。否则就会有别的操作。如果长时间尝试连接失败则会断开连接。

四次挥手

  • 第一次挥手:客户机对连接中的服务器发送断开 发送数据连接通路 的请求。
  • 第二次挥手:服务器会对客户机发送过来的请求进行确认
  • 第三次挥手:然后服务器会对服务器发起断开 接收数据连接通路 的请求
  • 第四次挥手:客户机收到请求,会发送对服务器断开请求的确认

此时经过四次挥手才算正式断开了通讯传输的连接

五、DNS域名解析服务

实际上,当用户在浏览器上的地址栏中输入url时,是通过域名的方式访问该网站的站点服务器。如www.baidu.com

而DNS(域名解析系统)则是对域名做出解析操作,解析为IP地址。这个解析的服务就是DNS提供的。

常见的DNS服务器地址有:114.114.114.1148.8.8.8

  • 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
  • 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

以上是关于098 网络基础知识的主要内容,如果未能解决你的问题,请参考以下文章

arc098 c,d题解

赛时总结 ◇赛时·I◇ AtCoder ARC-098

AtCoder Regular Contest 098

098.卡布列克常数

AtCoder Regular Contest 098

Lintcode098.Sort List