数据链路层

一文读懂客户端请求是如何到达服务器的

时光毁灭记忆、已成空白 提交于 2019-12-07 22:30:26
北京SEO :互联网是人类历史上最伟大的发明创造之一,而构成互联网架构的核心在于TCP/IP协议。那么TCP/IP是如何工作的呢,我们先从数据包开始讲起。 1、数据包 一、HTTP请求和响应步骤 http请求全过程 请求 响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 2、TCP/IP概述 我们以RFC 1180中的图作为参考 上图展示了四层TCP/IP协议图,其中network applications是应用程序,属于应用层;TCP和UDP主要是传输数据,属于传输层,TCP确保端对端的可靠传输并尽量确保网络健康运行,而UDP是简单不可靠传输;IP主要解决路由问题,属于网络层;ARP是网络地址转换,主要用来转换IP地址和MAC地址,介于数据链路层和网络层之间,可以看成2.5层;ENET在这里是数据链路层,网卡驱动属于这一层,主要做具体的介质传输,前面示例中的广告请求抓包就是在数据链路层抓取。 值得注意的是,ARP在linux系统里属于网络层,而在RFC里是介于数据链路层和网络层之间。在《TCP/IP详解》一书里,ARP被放到了数据链路层。当解决实际问题的时候,我们应该把ARP放到网络层。 上图给出使用TCPCopy在不同层发包的使用方法。如果TCPCopy从数据链路层发包,由于没有享受到ARP服务

网络编程理论

◇◆丶佛笑我妖孽 提交于 2019-12-06 12:24:26
网络编程(理论) 软件开发架构 C/S架构 ​ Client:客户端 ​ Sever:服务器 ​ 比如: 微信客户端、QQ客户端等…… 优点: ​ 软件使用稳定 ​ 节省网络资源 缺点: ​ 安装麻烦,用户体验差 ​ 软件的每一次更新,用户都需要重新下载或更新版本 B/S架构: ​ Browser:浏览器(本质上也是一个客户端) ​ Sever:服务器 ​ 比如:在浏览器上输入一个网址…… 优点: ​ 软件使用方便 ​ 无需跟着软件去更新下载 缺点: ​ 如果网络不稳定, 软件的使用就不稳定 PS:B/S架构比较流行,因为用户体验高 客户端与服务端 服务端:24小时不间断提供服务 客户端:只有客户需要的到时候,才回去访问服务端 计算机与计算机之间通信 ​ 语言是人与人之间沟通的介质 ​ 协议是计算机之间沟通的介质 网络编程 所有最新最牛的技术,都源自于军事: ​ 可以远程实时获取数据,实现远程通信 如何实现远程通信?------> 物理连接介质 ​ 电话 -----> 电话线 ​ 纯屏电脑(大头电脑) -----> 网线 ​ 笔记本电脑 -----> 网线,网卡 电脑之间的通信 ------> 互联网协议 ​ 让所有产商的电脑都遵循这套协议,实现所有电脑之间无障碍通信 ​ “互联网协议” 是计算机界中的英语 互联网协议(OSI七层协议) OSI七层协议: - 应用层 - 会话层 -

网络编程基础

百般思念 提交于 2019-12-06 12:24:00
目录 一、软件开发的架构 二、网络概念 三、互联网协议(OSI七层协议) 物理层 数据链路层 网络层 传输层 应用层 一、软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~ 1.C/S架构 C/S即:Client与Server,中文意思:客户端与服务端架构,这种架构也是从用户层面(也可以是物理层面)来划分的 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 优点:软件的使用稳定 ​ 节省网络资源 缺点:安装麻烦,用户体验差 ​ 软件的每一次更新,用户都需要重新下载或更新版本 2.B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源) 优点:软件的使用方便 ​ 无需跟着软件更新去下载 缺点:如果网络不稳定,软件的使用就不稳定 趋势:B/S架构流行

网络编程

允我心安 提交于 2019-12-06 12:23:17
二、网络编程 1、软件开发架构 c/s架构: client:客户端 server:服务端 比如:微信客户端,QQ客户端 优点: -软件的使用稳定 -节省网络资源 缺点: -安装麻烦,用户体验 差 -软件的每一次更新,用户都需要程序下载或更新版本 b/s架构: browser(本质上也是一个客户端):浏览器 sever:服务端 比如:在浏览器上输入一个网址 优点: - 软件件的使用方便 - 无需跟着软件的更新去下载 缺点: - 如果我网络不稳定,软件的使用就不稳定 #现在比较流行:b/s架构,用户体验感高 客户端与服务端: 服务端:24小时不间断提供服务。(比如:惠州淡水区某一个美丽的场所是一个服务端,可以提供服务) 客户端:客户想要找服务时,就去访问服务端(比如:xxx去寻求心灵辅导,比如学习英文) 三 往后学习的脉络 - 学习网络编程,并发编程,数据库---> 可以开发一套c/s架构的软件 - 学习前端(html/css/js),web框架(Django)---> 可以开发一套 b/s架构的软件 四 计算机与计算机之间的通信 - 语言是人与人之间沟通的介质 - 协议是计算机与计算机之间沟通的介质 五 网络编程 - 所有最新最牛的技术,都源自于军事: -可以远程实时获取数据,实现远程通信 - 如何实现远程通信:---> 物理连接介质 - 电话:---> 电话线 - 纯屏电脑:---

4、知识盲点

↘锁芯ラ 提交于 2019-12-06 09:19:05
疑点 1、负载均衡的实现理解 https://juejin.im/entry/5af135416fb9a07ab77427b5 2:DNS 等效于 IP + 端口 一个域名系统DNS对应的是IP+端口号,IP和不同的端口号可对应不同的DNS,这样可以实现一个主机部署多个网站,不过端口号是封装在传输层TCP/UDP协议中,在网络层才会套上IP地址。 原理: 域名系统是要根据域名找到对应的服务器上的对应的应用程序,不同的应用进程对应着不同的端口号,因此DNS对应的是IP+端口; 不同主机之间的交流其实是对应主机上的不同进程之间的交流,这一点要在传输层进行体现,因此端口号被封装在TCP/UDP中; 网络层的目的是找到对应的主机,因此IP地址被封装在网络层中,生成IP数据报。 3:交换机、网桥等在局域网中出现的设备对应的是最后两层(物理层和数据链路层),因此也称其为工作在数据链路层的设备 原理: 当数据不需要经过路由器的时候,只在局域网内部传输,实现局域网各个设备之间的互联,那么不需要利用IP地址(但是在之前还是需要查路由表来确定两个主机是同一局域网,还要通过ARP来找到目的主机的IP地址对应的MAC地址),利用MAC地址就行,然后通过交换机、网桥等设备将数据通过数据链路层传到目的主机。 ARP是解决同一局域网上的主机或路由器的IP地址和硬件地址映射问题

TCP/IP详解 IP路由选择

て烟熏妆下的殇ゞ 提交于 2019-12-06 06:42:59
TCP/IP详解 IP路由选择 在本篇文章当中, 将通过例子来说明IP路由选择器过程 如图所示, 主机A与主机B分别是处在两个不同的子网当中, 中间通过一个路由连接. 如果主机A请求与主机B进行通行, 主机A寻找主机B的位置的过程就可以理解为IP路由的选择过程. 现在主机A的用户通过Ping命令确认与主机B的连通性. Ping命令看似简单, 但是其中IP路由选择的过程还是会有很多的步骤. 具体的步骤如下 : 当主机A上输入12.34.56.78之后, 主机A的因特网控制报文协议(ICMP)创建一个回应请求数据包, 其数据域中只包含有字母. ICMP协议会将刚刚创建的回应请求数据包(有效负荷)转交给因特网协议(IP协议)。IP协议会对这个数据包进行封装,创建一个数据包。在IP协议创建的数据包中,包括主机A的IP地址,目的主机B的IP地址以及值为01h的协议字段。当数据包达到主机B时,主机B通过判断协议字段01h,将这个有效负荷交给ICMP协议处理。 IP协议创建数据包后,会判断目的主机B的IP地址是处于本地网络中还是处于远程网络。根据IP地址规则,主机A、B属于不同网络。此时IP协议所创建的数据包会被发送到默认的网关。(在每个终端设备中,网络配置中需要包含自身的IP地址,以及默认到的网关地址。在不同网络之间的主机互相通信,依靠的就是网关设备) 如图中所示,默认的网关就是图中的路由器

二层交换机和三层交换机的区别

倖福魔咒の 提交于 2019-12-06 06:09:56
二层交换机和三层交换机 写在前面,本文旨在解决之前提到的一个知识点,即就是清楚二层交换机和三层交换机的区别。上一篇文章讲的是家用路由器产品相关介绍,具体见 《以太网交换芯片及PHY处理相关》 二层交换机和三层交换机之间的区别 二层交换机的应用十分广泛,因此对于我们来说并不陌生,但是随着网络复杂性的增加以及应用需要更高速的网络和更多的功能,三层交换机迅速崛起,并一度成为数据中心和大型企业的企业网络部署首选。 什么是二层交换机? 如下图所示,二层交换机是数据链路层设备,由于它工作于OSI模型的第2层,并且使用的是二层交换技术,因此被称为二层交换机。二层交换技术比较成熟,它具有识别数据包中MAC地址信息、根据MAC地址转发和将MAC地址与对应端口记录在地址表中等多种功能,但当需要数据流量在LAN或VLAN之间交换时,则需要使用三层交换机。 二层交换机如下: 什么是三层交换机? 如下图所示,三层交换机存在于二层交换机和网关路由器之间,使用的是三层交换机技术,这种技术也称多层 交换技术或IP交换技术,简单讲就是将路由技术与交换技术合二为一,优势是当同样的数据流再次通过时,将此表 直接从二层通过,这样减少了因为路由器的路由选择而造成网络的延迟,也可以大大提高转发效率。三层交换机的 数据包转发由硬件来高速支持,而路由信息更新、路由表维护、路由计算和确定等功能则由软件来支持。需要注意 的是

OSI模型

孤街浪徒 提交于 2019-12-06 03:10:40
OSI七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 物理层: 字面意思解释:物理传输、硬件、物理特性。在深圳的你与北京的朋友聊天,你的电脑必须要能上网,物理体现是什么?是不是接一根网线,插个路由器,北京的朋友那边是不是也有根网线,也得插个路由器。也就是说计算机与计算机之间的通信,必须要有底层物理层方面的连通,就类似于你打电话,中间是不是必须得连电话线。 中间的物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位 底层传输的010010101001...这些二级制位怎么才能让它有意义呢? 要让这些010010101001...有意思,人为的分组再适合不过了,8位一组,发送及接收都按照8位一组来划分。接收到8位为一组的话,那么就可以按照这8位数来做运算。如果没有分组,对方接收的计算机根本就不知道从哪一位开始来做计算,也解析不了收到的数据。我发了16位你就按照16位来做计算吗?我发100位你就按照100位做计算吗?没什么意义是吧。 因此要想让底层的电信号有意义,必须要把底层的电信号做分组。我做好8位一组,那么我收到数据,我就知道这几个8位做一组,这几个8位做一组。那么每个8位就可以得到一个确定的数。分组是谁干的活呢?物理层干不了,这个是数据链路层干的。 数据链路层 早期的时候,数据链路层就是来对电信号来做分组的

数据链路层帧格式

限于喜欢 提交于 2019-12-06 03:02:51
所谓数据帧(Data frame),就是 数据链路层 的 协议数据单元 ,它包括三部分:帧头, 数据 部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含 网络层 传下来的数据,比如IP数据包,等等。 数据帧的种类 编辑 在发送端, 数据链路层 把网络层传下来得 数据封装 成帧 ,然后发送到链路上去;在接收端,数据链路层把收到的帧中的数据取出并交给网络层。不同的 数据链路层 协议对应着不同的帧,所以,帧有多种,比如PPP帧、MAC帧等,其具体格式也不尽相同。 数据帧的示例 编辑 下面以MAC帧的格式为例进行说明: MAC帧的帧头包括三个字段。前两个字段分别为6 字节 长的目的地址字段和源地址字段,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。第三个字段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报;若类型字段的值为0x8137,则表示该帧是由Novell IPX 发过来的。 MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是 网络层 传下来的数据。 MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是 帧校验序列 FCS

S5700接口分类

老子叫甜甜 提交于 2019-12-06 02:25:38
物理接口 接口分类 接口类型 描述 LAN侧接口 百兆以太网FE(Fast Ethernet)接口 LAN侧FE接口工作在数据链路层,处理二层协议,实现二层快速转发,FE接口支持的最大速率为100Mbit/s。 说明: 只有S2750支持FE接口。 千兆以太网GE(Gigabit Ethernet)接口 LAN侧GE接口工作在数据链路层,处理二层协议,实现二层快速转发,GE接口支持的最大速率为1000Mbit/s。 万兆以太网10GE接口 LAN侧10GE接口工作在数据链路层,处理二层协议,实现二层快速转发,10GE接口支持的最大速率为10000Mbit/s。 说明: S2750不支持10GE接口。 4万兆以太网40GE接口 LAN侧40GE接口工作在数据链路层,处理二层协议,实现二层快速转发,40GE接口支持的最大速率为40000Mbit/s。 说明: 只有S 逻辑接口 接口类型 描述 Eth-Trunk接口 具有二层特性和三层特性的逻辑接口,把多个以太网接口在逻辑上等同于一个逻辑接口,比以太网接口具有更大的带宽和更高的可靠性。 Tunnel接口 具有三层特性的逻辑接口,隧道两端的设备利用Tunnel接口发送报文、识别并处理来自隧道的报文。 VLANIF接口 具有三层特性的逻辑接口,通过配置VLANIF接口的IP地址,实现Vlan间互访。 子接口