计算机网络

  • 计算机网络
    • 一、 计算机分层结构
      • 1.1 TCP/IP四层模型与OSI体系结构对比
    • 二、物理层
    • 三、数据链路层
      • 3.1 **数据链路层的作用**:
      • 3.2 有关数据链路层的重要知识点
      • 3.3 数据链路层的差错监测
      • 3.4 以太网协议详解
    • 四、网络层
      • 4.1 ip协议详解
      • 4.2 IP协议的转发流程
      • 4.4 网络地址转换NAT技术
      • 4.5 ARP协议与RARP协议
      • 4.6 ICMP协议详解
      • 五、传输层
      • 5.1 UDP协议详解
      • 5.2 TCP协议详解
      • 5.3 TCP协议的流量控制
      • 5.4 TCP协议的拥塞控制
      • 5.5 TCP为什么比UDP慢?
      • 5.6 TCP三次握手和四次挥手
    • 六、应用层
      • 6.1 DNS详解
      • 6.2 HTTP协议
      • 6.3 HTTP1.0和HTTP1.1的区别?
    • 6.4 什么是 Cookie 和 Session ?

计算机网络

一、 计算机分层结构

1.1 TCP/IP四层模型与OSI体系结构对比



含有中间系统的分层模型



二、物理层

物理层的作用:连接不同的物理设备,传输比特流。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。
物理层设备:
中继器【Repeater,也叫放大器】:同一局域网的再生信号
集线器:同一局域网的再生、放大信号(多端口的中继器)

三、数据链路层

3.1 数据链路层的作用

通过链路将一个结点向相邻的另一个结点发送数据报数据链路层在不可靠的物理介质上提供可靠的传输。
链路层为上面网络层提供的服务: 无确认无连接服务,有确认无连接服务,有确认面向连接服务

该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

流量控制

3.2 有关数据链路层的重要知识点

数据链路层为网络层提供可靠的数据传输;
基本数据单位为帧;
主要的协议:以太网协议;
两个重要设备名称:网桥和交换机。
**


说明:最大传输单元MTU(Maximum Transmission Unit),数据链路层的数据帧不是无限大的,数据帧长度受MTU限制.
透明传输:“透明”是指即使控制字符在帧数据中,但是要当做不存在去处理。控制字符前加上转义字符ESC,或者采用零比特填充法,或者违规编码法。换句话说:看不见传输的数据
说明违规编码法

零比特填充法

3.3 数据链路层的差错监测

差错检测:奇偶校验码、循环冗余校验码CRC

3.4 以太网协议详解

MAC地址:每一个设备都拥有唯一的MAC地址,共48位,使用十六进制表示。

以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输:

以太网帧结构:
1. 类型:标识上层协议(2字节)
2. 目的地址和源地址:MAC地址(每个6字节)
3. 数据:封装的上层协议的分组(46~1500字节)
4. CRC:循环冗余码(4字节)
5. 以太网最短帧:以太网帧最短64字节;以太网帧除了数据部分18字节;数据最短46字节;

MAC地址(物理地址、局域网地址)
MAC地址长度为6字节,48位;
MAC地址具有唯一性,每个网络适配器对应一个MAC地址;
通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或 : 连接起来;
MAC广播地址:FF-FF-FF-FF-FF-FF。

四、网络层

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括==寻址和路由选择、连接的建立、保持和终止等。数据交换技术是报文交换(基本上被分组所替代):采用储存转发方式,数据交换单位是报文
包含的主要协议:
IP协议(Internet Protocol,因特网互联协议);
ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
ARP协议(Address Resolution Protocol,地址解析协议);
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

4.1 ip协议详解

IP协议非常简单,仅仅提供不可靠、无连接的传送服务。
虚拟互联网络的产生:实际的计算机网络错综复杂;物理设备通过使用IP协议,屏蔽了物理网络之间的差异;当网络中主机使用IP协议连接时,无需关注网络细节,于是形成了虚拟网络。


其中,版本指IP协议的版本,占4位,如IPv4和IPv6;首部位长度表示IP首部长度,占4位,最大数值位15;总长度表示IP数据报总长度,占16位,最大数值位65535;TTL表示IP数据报文在网络中的寿命,占8位;协议表明IP数据所携带的具体数据是什么协议的,如TCP、UDP。

4.2 IP协议的转发流程


4.4 网络地址转换NAT技术

用于多个主机通过一个公有IP访问访问互联网的私有网络中,减缓了IP地址的消耗,但是增加了网络通信的复杂度。
NAT 工作原理:
从内网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的公共IP地址,并将替换关系记录到NAT转换表中;
从公共互联网返回的IP数据报,依据其目的的IP地址检索NAT转换表,并利用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络。

4.5 ARP协议与RARP协议

地址解析协议 ARP(Address Resolution Protocol):可以把网络层32位地址转化为数据链路层MAC48位地址。
ARP 是即插即用的,一个ARP表是自动建立的,不需要系统管理员来配置。


RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议,可以把数据链路层MAC48位地址转化为网络层32位地址。

4.6 ICMP协议详解

静态路由人工配置,难度和复杂度高;
动态路由链路状态路由选择算法LS:向所有隔壁路由发送信息收敛快;全局式路由选择算法,每个路由器计算路由时,需构建整个网络拓扑图;利用Dijkstra算法求源端到目的端网络的最短路径;Dijkstra(迪杰斯特拉)算法距离-向量路由选择算法DV:向所有隔壁路由发送信息收敛慢、会存在回路;基础是Bellman-Ford方程(简称B-F方程);

五、传输层

有关网络层的重点:
传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
重要设备:网关。

5.1 UDP协议详解

UDP(User Datagram Protocol: 用户数据报协议),是一个非常简单的协议
UDP协议的特点:

  • UDP是无连接协议;
  • UDP不能保证可靠的交付数据
  • UDP是面向报文传输的
  • UDP没有拥塞控制
  • UDP首部开销很小

5.2 TCP协议详解


TCP协议的功能:
对应用层报文进行分段和重组;
面向应用层实现复用与分解;
实现端到端的流量控制;
拥塞控制;
传输层寻址;
对收到的报文进行差错检测(首部和数据部分都检错);
实现进程间的端到端可靠数据传输控制。

TCP协议的特点:
TCP是面向连接的协议;
TCP是面向字节流的协议;
TCP的一个连接有两端,即点对点通信;
TCP提供可靠的传输服务;
TCP协议提供全双工通信(每条TCP连接只能一对一);

5.3 TCP协议的流量控制

5.4 TCP协议的拥塞控制

什么是拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。

拥塞问题:当需求的资源 > 可用资源

避免拥塞问题的方法:
TCP 一共使用了四种算法来实现拥塞控制:
慢开始 (slow-start) ;
拥塞避免 (congestion avoidance);
快速重传 (fast retransmit);
快速恢复 (fast recovery)。

5.5 TCP为什么比UDP慢?

5.6 TCP三次握手和四次挥手

面试常客:为什么需要三次握手?

第一次握手:客户发送请求,此时服务器知道客户能发;
第二次握手:服务器发送确认,此时客户知道服务器能发能收;
第三次握手:客户发送确认,此时服务器知道客户能收。


建立连接(三次握手):
第一次握手:客户端请求建立连接,向服务端发送一个 同步报文(SYN=1) ,同时选择一个随机数 seq = x 作为初始序列号,并进入 SYN_SENT 状态,等待服务器确认。

第二次握手:服务端收到连接请求报文后,如果同意建立连接,则向客户端发送 同步确认报文(SYN=1,ACK=1) ,确认号为 ack = x + 1,同时选择一个随机数 seq = y 作为初始序列号,此时服务器进入 SYN_RECV 状态。

第三次握手:客户端收到服务端的确认后,向服务端发送一个 确认报文(ACK=1) ,确认号为 ack= y + 1,序列号为 seq = x + 1,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。

为什么需要三次握手,而不是两次?

四次挥手
简述 TCP 四次挥手过程



为什么连接的时候是三次握手,关闭的时候却是四次握手?
服务器在收到客户端的 FIN 报文段后,可能还有一些数据要传输,所以不能马上关闭连接,但是会做出应答,返回 ACK 报文段。
服务器的ACK和FIN一般都会分开发送,从而导致多了一次,因此一共需要四次挥手。

六、应用层

应用层重点:
数据传输基本单位为报文;
包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

6.1 DNS详解

DNS(Domain Name System:域名系统)【C/S,UDP,端口53】:解决IP地址复杂难以记忆的问题,存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射。

6.2 HTTP协议

HTTP协议的特点?
HTTP允许传输 任意类型 的数据。传输的类型由 Content-Type 加以标记。
无状态 。对于客户端每次发送的请求,服务器都认为是一个新的请求,上一次会话和下一次会话之间没有联系。
支持客户端/服务器模式。

6.3 HTTP1.0和HTTP1.1的区别?




6.4 什么是 Cookie 和 Session ?

什么是 Cookie

HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据
它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
通常,用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
什么是 Session

Session 代表着服务器和客户端一次会话的过程。
Session 对象存储特定用户会话所需的 属性及配置信息 。
这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当 客户端关闭会话 或者 Session 超时失效时 会话结束。
Cookie和Session的区别?
作用范围不同,Cookie 保存在客户端,Session 保存在服务器端。
有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。
隐私策略不同,Cookie 存储在客户端,容易被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些 。
存储大小不同, 单个 Cookie 保存的数据不能超过 4K;对于 Session 来说存储没有上限,但出于对服务器的性能考虑,Session 内不要存放过多的数据,并且需要设置 Session 删除机制。
Cookie 和 Session 是如何配合的呢?(SessionID)
用户第一次请求服务器的时候
服务器根据用户提交的相关信息,创建对应的 Session ,请求返回时将此 Session 的唯一标识信息 SessionID 返回给浏览器;
浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名。当用户第二次访问服务器的时候请求会 自动判断此域名下是否存在 Cookie 信息 ,如果存在自动将Cookie 信息也发送给服务端;服务器端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的Session 信息;
如果没有找到说明用户没有登录或者登录失效;
如果找到 Session 证明用户已经登录可执行后面操作。
根据以上流程可知,SessionID 是连接 Cookie 和 Session 的一道桥梁,大部分系统也是根据此原理来验证用户登录状态。

计算机网络基础知识点梳理相关推荐

  1. Python培训教程之Python基础知识点梳理

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小编就来给大家分享一篇Python培训教程之Python基础知识 ...

  2. Python教程:Python基础知识点梳理!

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小千就来给大家分享一篇Python基础知识点梳理. 1.Pyth ...

  3. Python教程分享之Python基础知识点梳理

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小千就来给大家分享一篇Python基础知识点梳理. Python ...

  4. python describe函数_Python基础知识点梳理2,推荐收藏

    接着昨天的基础知识点继续梳理,昨天的 Python基础知识梳理1 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是-greet_user ( ...

  5. 计算机网络基础知识点大纲

    计算机网络基础知识点大纲 计算机网络概述 计算机网络定义 计算机网络体系结构 网络协议定义 协议三要素 体系结构 OSI七层模式 TCP/IP的四层模型 五层协议体系 数据包的封装与解封装 分层结构中 ...

  6. 计算机网络基础知识点快速复习手册

    前言 本文快速回顾了计算机网络书本中常考的的知识点,用作面试复习,事半功倍. 主要内容有:计算机网络体系结构,TCP与UDP,UDP/TCP实现DEMO代码 面试知识点复习手册 全复习手册文章导航 全 ...

  7. 【Android开发】计算机网络基础知识点,如何完成网络请求过程?

    (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...

  8. 计算机网络基础——知识点总结

    计算机网络基础 1 概述 1 什么是互联网 2 互联网的组成 3 网络性能指标 4 计算机 2 物理层 1 物理层的作用 2 常用编码形式 3 信道复用技术 3 数据链路层 1 点对点通信 2 三个基 ...

  9. sql基础教程和mysql基础教程_书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·上...

    写在前面关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧.对于零基础来说非常友好,看完能够迅速上手SQL. 关于本文:一篇对这本书的知 ...

最新文章

  1. 一款好用 mongodb 可视化工具
  2. 一个purge参数引发的惨案——从线上hbase数据被删事故说起
  3. 函数调用基础概念原理
  4. 如何将另外一个表里的数据与联动_跨境电商(亚马逊)后台财务数据包
  5. [BTS] WCF-SAP Connect to SAP gateway failed
  6. 如何理解产品经理的核心竞争力
  7. pandas学习笔记三之赋值操作
  8. 二叉树经典题之二叉树最近公共祖先(LeetCode)
  9. python让你再也不为文章配图与素材发愁,让高清图片占满你的硬盘! #华为云·寻找黑马程序员#
  10. aidl使用_Android-Service学习鸭-入门实践-远程服务(bindService方式-AIDL)
  11. HTTP协议 (五) 代理
  12. PHP 获取微视无水印源地址_PHP快速实现解析无水印播放地址URL——快手篇
  13. php wind8.5,PHPWind Forums下载
  14. ActiveMQ下载与安装使用
  15. 微信扫码支付 java版
  16. 用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹
  17. ModbusRTU协议数据格式
  18. Windows GetLastError返回值 【转】
  19. CH模拟赛 皇后游戏
  20. 无声交流的读心术,正在剥夺我们的沟通能力

热门文章

  1. Java及spring 注解(反射原理)
  2. Notion最实用使用教程
  3. 电脑删除的照片如何恢复
  4. 职位的意义,工作的升华
  5. SpringBoot2学习笔记01-基础
  6. Linux/CentOS系统Tomcat 7/8.5/9部署SSL证书,端口为8443能够访问成功,换成443却访问失败
  7. 保险赔款计算因子-保险金额
  8. 转载:VGA/DVI/HDMI/DP/Type-C/雷电 显示接口对比介绍
  9. voip语音质量测试国际电信联盟标准E-mode
  10. ubuntu 查看显卡版本