计算机网络101

物理层(透明传输比特流)
数据链路层(如何将数据组成数据块)
网络层(IP协议族, 负责找到要进行通讯的主机)
运输层(TCP/UDP协议族,负责数据传输)
应用层(http协议 ftp协议 dns协议 具体的应用协议)

网络通信简单的来说就是一个终端通过网络向另外一个终端发送信息的过程。

  1. 一个信息源
  2. 一个传输器,可以把信息encode为信号
  3. 一个频道,信号可以从中通行
  4. 一个接收器,可以把信号decode为信息
  5. 一个接收者

物理层

物理层的任务就是透明传输比特流

调制分为两类

  • 基带调制
    实线(如市话电缆、对绞线或同轴电缆)上直接传输数据信号
    因为是把数字信号转换为另外一种数字信号,我们更愿意把这种转换称为编码。
Paste_Image.png

不归零 正电平代表1 负电平代表0
归零 正脉冲代表1 负脉冲代表0
曼切斯特 周期中心向上的跳变代表0,周期向下的跳变代表1.
差分曼切斯特 每个周期中心都有跳变,位边界产生跳变代表0,没有跳变代表1。
为什么要使用曼切斯特或者差分曼切斯特编码(可以知道钟频,有利于后期的纠错)

  • 通带调制
    长距离通信,或者介质不能传递数字信号
Paste_Image.png

(调幅、调频、调相)

采样定理连续信号(通常称作“模拟信号”)与离散信号(通常称作“数字信号”)之间的一个基本桥梁。它确定了信号带宽的上限,或能捕获连续信号的所有信息的离散采样信号所允许的采样频率的下限。

如果要将一个连续信号重现,最小的采样频率为其频率的两倍
反过来说一个连续的信号,最大可以转换为其2倍的数字。

若信道带宽为W,则奈氏定理的最大码元速率为:
B=2W(Baud)
baud(波特)是数据通信速度的表示单位,是设备(如调制解调器)每秒中发生信号变化的度量。它表示通信线路状态每秒钟变化的次数。一次变化我们可以给与不同的定义(比如说这样的变化代表11(4相)那样的变化代表011(8相))。

奈氏准则揭示了一个介质每秒中可以携带的最大码元 数量 使其带宽的两倍。

SNR=20LOG10 (Vs/Vn) ,Vs和Vn分别代表信号和噪声电压的有效值
SNR=10LOG10(Ps/Pn),Ps和Pn分别代表信号和噪声的有效功率
S/N和SNR是一个意思,信噪比的英文缩写.

C = Wlog2(1+s/n)
C信道容量 bit, W 频带宽度 ,s/n 信噪声比


数据链路层 source

基本数据单元
帧分为三个部分 帧首部 帧的数据部分 帧尾部
假设 帧的首部为 ASCII SOH 帧尾部为 ASCII EOT 那么 帧就会是这个样子
SOH+数据+EOT
但是在数据部分可能会出现SOH 01H,EOT 04H的数据 导致错误的结束帧
解决方法
在数据中出现控制字符SOH或者EOT前面插入一个转义符ESC(1B*H)。如果数据部分里面有ESC则在前面ESC。当接收端接收到连续的两个特殊符号的时候 会删除前面 的那个特殊符号
差错校验
通过CRC进行数据的校验 最后得到的余数为0则校验成功,否则帧内容存在错误,抛弃帧。
假设使用的生成多项式是G(X)=X3+X+1。4位的原始报文为1010,求编码后的报文。source
该层的协议
PPP帧
首部7E+协议
信息部分
尾部FCS(冗余码)+F
字节填充
在异步传输采用7E进行字节填充
在同步传输采用零比特进行填充

MAC帧
MAC地址是48位的
目的地址(6Byte)|源地址(6Byte)|类型(2Byte)|数据(min 46Byte Max 1500Byte)|FCS(4Byte)
无效的MAC帧

  1. 帧的长度不是整数字节
  2. FCS查出有差错
  3. 含有的数据不在46Byte和1500Byte之间

注意MAC帧没有结束字段

使用广播信道的数据链路层
csma/cd协议 同一时间只有一台计算机能发送数据,如果有多个终端发送了数据就意味着发生了碰撞,我们记单程端到端的传播时延为t,那检测到碰撞的最糟糕的情况是到达另外一端底部的时候,发生碰撞,所以检测到碰撞的最长时间为2t。这2t的时间我们称之为碰撞窗口。协议规定了争用期时间为51.2us,对于10Mb/s的以太网,争用期能传输的数据为512bit,即64Byte。所以规定凡是长度小于64字节的帧都是由于冲突而异常中止的无效帧。
集线器(简单的把线集合起来什么都不做)
网桥
转发表(网桥适用 A从1端口向B发送了一个MAC帧,透明网桥就记录下来1端口的MAC帧为***)


网络层

IP协议
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
IP地址是32位的
IP地址分类
分类的IP地址
A类、(0-126) 网络地址分别位1字节(只有7位可以使用第一位固定为0)10
B类、(127-191) 2字节(只有14位可以使用前两位固定位10)127
C类 (192-223) 3字节长(只有21位可以使用前3位位110)192

对于A类而言 可指派的网络数位为 2^7 -2 (其中全为0和01111111为保留网络号),每个网络号可以拥有的主机的数量为2^24-2(其中全为0表示该主机连接到的当个网络地址,全1表示该网络上所有的主机)

对于B类而言 可使用的网络位数为2^10-1(其中10后面 全1为保留网络号),每个网络号可以拥有的主机的数量为2^12-2

对于C类而言 可以使用的网络位数为2^21 -1(其中011后面全1为保留网络号),每个网络号可以拥有的主机数量为2^8-2

ARP协议
适用于局域网
通过网络层ip地址协议解析出数据链路层使用的MAC地址。
三层协议
现在把IP地址分为三部分
第一部分网络号,第二部分 子网号 第三部分主机号
example;
子网掩码255.255.192.0 (11111111,11111111,110000,00000000) 和ip地址做AND就知道网络号了
现在IP地址又不够用 现在采用的是CIDR 无分类编址
采用无分类的两级编址
example
128.14.35.7/20 表示前20位是网络前缀 ,后12位是主机号 在该ip地址所在的地址块中最小的地址位128.14.32.0,最大地址为128.14.27.255。同时我们可以记这个地址块为128.14.32.0/20地址块。
ICMP 协议
ICMP允许主机或者路由器报告差错情况和提供相关异常情况的报告。PING和TRACERT。
路由选择协议 分为两类
内部网关协议
外部网关协议


运输层

端口
端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用 百度百科

运输层的主要协议有两个 协议UDP和TCP
UDP概述

  • UDP是无连接的
  • UDP尽最大努力交付 不回复确认包
  • UDP是面向报文的
    应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
  • UDP没有拥塞控制
  • UDP支持一对一、一对多、多对多的互相通信、
    TCP概述
Paste_Image.png
  • 面向连接
    双方都维持有为进一步通信而需要的数据结构
    开始通讯三次握手
Paste_Image.png
结束通信四次握手

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)

为什么要四次呢? 因为是TCP是双工的

  • 全双工通信
  • 面向字节流
    用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
  • 每一条TCP连接只能有两个端点
  • TCP 滑动窗口

应用层
目前比较常用的浏览器、服务器架构就是一台主机的浏览器 采用http协议和另一台主机的apache或者tomcat等特定软件进行数据交换。对于浏览器来说它不用去考虑怎么找到对方的主机、怎么和对方的主机实现可靠的通信,它就只用将信息按照要求(HTTP etc)发出或者进行解析就好了。

URI

Paste_Image.png

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
http://www.cisco.com/en/US/partners/index.html
方案名 (http)
域名 (www.cisco.com)
www.cisco.com
主机 域名 类型
路径 (/en/US/partners/index.html)

URL的解析

浏览器键入一个网址,
浏览器首先查找其本身有没有存在这个网址对应的ip地址的缓存,像chrome默认的缓存时间是1分钟,如果一个url对应多个ip地址的话浏览器默认会用第一个
没有找到的话操作系统会在dns缓存中查找该url对应的ip地址
没有找到的话系统会在host文件中查找该url对应的ip地址
没有找到的话系统会通过dns协议向dns服务器发送查询的请求
dns服务器内有这个url对应的ip地址的记录会将信息返回

如果DNS服务器内也没有这个url对应的ip地址的记录,服务器会向通过迭代查询或者递归查询的方式获得信息并且返回记录

SOCKET

Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。 实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、 listen、connect、accept、send、read和write等等。我们讲socket编程其实和win32编程等的应该是一样的概念。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容