计算机网络

本文详细阐述了OSI七层模型,边缘和核心部分的划分,以及TCP/IP传输协议(包括TCP、UDP和它们的功能、连接管理),介绍了DNS域名系统、HTTP协议的运作,HTTPS的安全性提升,以及WebSocket在实时通信中的应用。
摘要由CSDN通过智能技术生成

1. OSI七层参考模型

a. 从因特网的工作方式上看,可以划分为两大块

  1. 边缘部分 由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传输数据,音频、视频)和资源共享
  2. 核心部分 由大量网络和连接网络的路由器组成。这部分是为边缘部分服务的(提供连通性和交换)

处在因特网边缘的部分就是连接在因特网上的所有主机。这些主机又成为端系统(end system)

计算机之间的通信是指--主机A上的某个进程和运行在主机B上的另一个进程进行通信

b. 计算机网络的体系结构

  1. 计算机网络是个很复杂的系统,相互通信的两个计算机系统必须高度协调工作才行,而这种协调相当复杂
  2. “分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而局部较小的问题就易于研究和处理
  3. 法律上的国际标准OSI(开放系统互连参考模型OSI/RM)
  4. 非国际标准TCP/IP 现在获得了最广泛的应用

2. TCP/UDP 传输协议

a. 运输层的主要功能

  1. 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
  2. 运输层还要对收到的报文进行差错检测
  3. 运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP

b. 运输层的两个主要协议

  1. UDP 在传输数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下(视频会议,游戏)UDP是一种最有效的工作方式
  2. TCP则提供面向连接的服务》 TCP不提供广播或多播服务。由于TCP要提供可靠的,面向连接的运输服务,因此不可避免的增加了许多开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源

c. TCP的连接

  1. 每一条TCP连接有两个端点。
  2. TCP连接的端点不是主机,也不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫套接字
  3. 端口号拼接到IP地址即构成了套接字socket=(IP地址:端口号)
  4. 每一条TCP连接唯一地被通信两端的两个端点(即两个套接字确定) TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}

1. 源端口和目的端口 各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现

2. 序号字段 占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号段的值是指本报文段所发送的数据的第一个字节的序号

2.1 序号值判断实例

A向B发送一个报文段的序号字段是301,携带的数据共有100字节。表明本报文段数据的第一个字节的序号是301,最后一个字节的序号是400.A向B发送的下一个报文段的数据序号应该是多少?下一个报文段的数据序号应该是从401开始

3. 确认号字段占用4字节,是期望收到对方的下一个报文段数据的第一个字节的序号

3.1 确认号值判断实例

A向B发送一个报文段的序号字段是301,携带的数据共有100字节,B收到了A发来的100个字节。B发给A的确认报文段中确认号的字段值为多少? 401

4. 数据偏移(即首部长度)---占4位,它指出TCP报文段的 数据起始处 距离TCP报文段的起始处有多远 数据偏移的单位是32位字--4字节

5. 保留字段---占6位,保留为今后使用,但目前应置为0

6. 紧急URG---当URG=1时,表明紧急指针字段有效。它告诉系统此报文段有紧急数据,应尽快传送

7. 确认ACK---只有当ACK=1时确认号字段才有效,

8. 推送PSH---接受TCP收到PSH=1的报文段,就尽快地交付接受应用进程,而不再等到整个缓存都填满后再向上交付

9.复位RST---当RST=1时表明TCP连接中出现严重差错(如主机崩溃),必须释放连接,然后再重新建立运输连接

10. 同步SYN---同步SYN=1表示这是一个连接请求或连接接受报文。

11. 终止FIN =1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接

12. 窗口字段--占2字节,指发送本报文段一方的接受窗口,用来让对方设置发送窗口的依据,单位为字节

13. 校验和---占2字节。校验和字段校验的范围包括首部和数据两部分。在计算校验和时,要在TCP报文段的前面加上12字节的伪首部

14. 紧急指针字段---占16位,指出本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)

15. 选项字段---长度可变。TCP最初只规定了一种选项,即最大报文长度MSS。MSS告诉对方TCP "我的缓存所能接受的报文端的数据字段的最大长度时MSS个字节"

d. TCP的运输连接管理

TCP是面向连接的协议。每一次面向连接的通信都需要建立和释放的过程。

运输连接的三个阶段

1. 连接建立

2. 数据传送

3. 连接释放

建立连接过程中要解决以下三个问题:

1. 要使每一方能够确知对方存在

2. 要允许双方协商一些参数(如最大报文端长度,最大窗口大小,服务质量等)

3. 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配

e. TCP的连接建立

ack = (对方)seq +1

syn = 1

ACK =1

seq = x, y, y+1

3. 常见的应用层协议

a. DNS(Domain Name System, 域名系统)

IP 地址既难记忆,又很难从键盘输入,因此想到把IP地址变成名字。因特网设立专门的机构(ICANN)管理名字

1. 根域名服务器并不直接把域名转换成IP地址。在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的IP地址告诉本地域名服务器。

2. 顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)

  1. 权限域名服务器负责一个区域的域名服务器,当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器
  2. 本地域名服务器对域名系统非常重要

4.1 当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器

4.2 每一个因特网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器

4.3 这种域名服务器有时也称为默认域名服务器

  1. host文件

5.1 hosts文件是Windows系统中一个负责IP地址与域名快递解析的文件,以ASCLL格式保存。键入域名的时候,首先会看看hosts文件中有没有关于此域名IP地址的记录。如果有,就直接登录该网站,如果没有再查询DNS服务器

Host文件通常再\system32\drivers\etc下,每个映射关系表示一个IP地址和主机名的对应关系如

127.0.0.1 localhost

b. HTTP (超文本传输协议)

使用统一资源定位符URL 来标志万维网上的各种文档

万维网客户程序与万维网服务器程序之间进行交互所使用的协议是超文本传送协议

使用超文本标记语言HTML,使得各种万维网文档都能再因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链

URL一般由四部分组成,在URL中的字符对大写小写没有要求

访问不同对象使用的协议不同,URL指出读取某个对象所使用的协议,一般形式是

Http://www.jnshu.com // http协议默认端口是 80

端口号和路径缺省的情况下,此URL就指到因特网上的某个主页

主页: 一个www服务器最高级别的页面;

HTTP协议: 定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器

从层次的角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础

用户输入url后发生的事

  1. 浏览器分析超链指向页面URL
  2. 浏览器向DNS请求解析WWW.jnshu.com的IP
  3. 域名系统DNS解析出技能树服务器的IP地址
  4. 浏览器与服务器建立TCP连接
  5. 浏览器发出取文件命令 GET /kcsz/index.htm
  6. 服务器给出响应,把文件index.htm 发给浏览器
  7. TCP连接释放
  8. 浏览器现实“技能树课程设置”文件index.htm中的所有文本

HTTP主要特点

HTTP使用面向连接的运输层TCP协议,保证数据的可靠传输

HTTP协议本身是无连接的,通信双方在交换HTTP报文之前不需要先建立HTTP连接

HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的页面时,服务器的响应和第一次相同

请求一个万维网文档所需的时间

用户点击鼠标链接到某个万维网文档时,HTTP协议首先和服务器建立TCP连接,需要三次握手,当三次握手的前两部分完成后,浏览器把HTTP请求报文作为三次握手的第三个报文的数据发送给万维网服务器,服务器收到后,就把请求的文档返回给客户。

RTT: 往返时延。表示从发送端发送数据开始,到收到来自接收端的确认

HTTP/1.0 协议采用上述的连接方式,其主要缺点:每请求一个文档就要有2RTT的开销。另外每一次新建立TCP连接都要分配缓存和变量,因服务器同时要服务于大量客户请求,使服务器负担很重

HTTP/1.1 协议使用持续连接。万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要文档都在同一个服务器上就行

代理服务器

代理服务器又称为万维网高速缓存,它代表浏览器发出HTTP请求

万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL的地址再去因特网访问该资源

高速缓存服务器收到对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在HTTP响应报文中,通过已建立的TCP连接,返回给请求该对象的浏览器

HTTP是无状态的,这样简化了服务器的设计,但在实际工作中,一些站点常常希望能够识别用户,或限制某些用户的访问

万维网站点使用Cookie来追踪用户

Cookie表示在HTTP服务器和客户之间传递的状态信息

Cookie的工作过程: 当用户浏览某个使用Cookie的网站时,该网站的服务器就为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪用户在该网站的活动。

服务器不需要知道用户的姓名和其他信息,通过识别码就可以知道用户访问的网页及顺序,及用户已经使用过的电子邮件,信用卡号码等信息

Cookie的使用涉及用户的隐私,如网站服务器将获取的用户信息卖给第三方,收集用户的网上行为等

用户可以在Cookie文件夹中看到Cookie文件 \AppData\Roaming\Microsoft\Windows\Cookie

c. HTTPS

默认使用TCP端口443

HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全

d. WobSocket

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值