计算机网络重点

1,两种参考模型

OSI参考模型,七层
Open System Interconnect
* 应用层
* 表示层
* 会话层
* 传输层
* 网络层
* 数据链路层
* 物理层

TCP/IP参考模型,四层。(一般按照这个模型来)
Transmission Control Protocol/Internet Protocol
* 应用层,处理特定应用程序细节。FTP,E-MAIL,Telnet。
* 传输层,为两台主机上的应用程序提供端到端的服务。TCP,UDP。
* 网络层,处理分组在网络中的活动,点到点。IP,ICMP,IGMP。路由器就在这一层。
* 链路层,处理与传输媒介的物理接口细节。ARP,RARP,设备驱动程序,接口卡。网桥,交换机在这一层。

TCP/IP协议族:一组不同的协议组合在一起构成的协议族。

  • 路由器工作在网络层,IP。
  • 网桥工作在链路层。

互联网的两个名词
* internet
* Internet

2,传输层的UDP,TCP

UDP,用户数据报协议,无连接,不可靠,数据报模式。使用UDP的应用层协议:视频,语音广播,DNS,TFTP等对速度要求高的。
TCP,传输控制协议,有连接,可靠,流模式。使用TCP的应用层协议:HTTP,Telnet,FTP等对可靠性要求高的。

在TCP的连接中,数据流必须以正确的顺序送达对方。TCP的可靠性是通过顺序编号和确认(ACK)来实现的。
TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。

3,传输层TCP的三次握手和四次挥手

Paste_Image.png

三次握手:

  • 第一次:Client将标识的SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server。
  • 第二次:Server收到数据包后由SYN=1知道Client要请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client已确认连接请求,Server进入SYN_RCVD状态。
  • 第三次:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ACK是否为1,ack是否为K+1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

四次挥手:

  • 第一次挥手:Client将标识的FIN设置为1,随机产生一个值seq=M,并将该数据包发送给Server,Client进入FIN_WAIT_1状态。
  • Server收到FIN后,发送一个ACK给Client,确认序号为seq=M+1,Server进入CLOSE_WAIT状态。
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

**为什么建立连接是三次握手,而关闭连接却是四次挥手呢? **
这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

4,网络层的IP地址的划分

IPV4地址,32位,4*8
例如:192.168.0.1

  • A类地址:0*******.********.********.******** ,从0.0.0.0 到127.255.255.255;
    • 默认子网掩码为255.0.0.0。7位网络号,24位主机号。
    • 第一个八位字节指明网络,后三个八位字节指明网络上的主机。
    • 第一个八位字节若为127和0,不作为A类网络地址。网络号127保留作为本机软件回路测试之用,如127.0.0.1是环回测试用的固定的特殊IP。全0的IP地址是保留地址意思为“本网络”,代表当前设备的IP。
    • 后三个八位字节全1,全0不作为主机地址,1个A类网络可以提供2^24-2个主机地址。主机号全为“1”的网络地址用于向同一子网所有主机发送报文,叫做广播地址。主机号全部为“0”的地址是代表该子网的网络地址。
  • B类地址:10******.********.********.******** ,从128.0.0.0到191.255.255.255;
    • 默认子网掩码为255.255.0.0。14位网络号,16位主机号。
  • C类地址:110*****.********.********.********,从192.0.0.0到223.255.255.255;
    • 默认子网掩码为255.255.255.0。21位网络号,8位主机号。
  • D类地址:1110****.********.********.********,从224.0.0.0到239.255.255.255;
    • 28位多播组号,广播地址!
  • E类地址:11110***.********.********.********,从240.0.0.0到255.255.255.255;
    • 27位留待后用,保留地址!
      IPV6地址,128位,8*16
      例如:FFED:0:0:0:0:BA98:3210:4562

5,网络层IP路由选择

  • RIP协议,Routing information Protocol,路由信息协议
    底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。
  • OSPF协议,Open Shortest Path First,开放式最短路径优先
    底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。

6,网络层ICMP

ICMP,Internet Control Message Protocol,Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

ping命令,发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。

7,链路层ARP协议

ARP,地址解析协议,提供IP地址到MAC地址之间的动态映射。

  • 32位IP地址-----ARP----->48位MAC地址
  • 32位IP地址<-----RARP----48位MAC地址

8,在浏览器中输入www.baidu.com

简化版本:

  1. 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址。
  2. 解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接。
  3. 浏览器发出HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器。
  4. 服务器给出响应,把对应的html文本发送给浏览器。
  5. 释放TCP连接。
  6. 浏览器渲染网页。

详细版本:
应用层

  • 1,在浏览器中输入www.baidu.com,浏览器运行应用层的HTTP超文本传输协议。
  • 2,浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48。若地址不含端口,则根据协议默认确定一个,HTTP默认端口80。
  • 3,浏览器产生HTTP包,向上一步确定的IP和端口号发起网络连接HTTP。

传输层

  • 4,浏览器把HTTP会话请求分成报文段,添加源和目的端口,交给TCP,TCP的主要功能是与百度服务器的TCP程序进行连接并建立会话。

网络层

  • 5,TCP将TCP信息包转发给IP层。IP层的重要功能是寻址和路由,IP将自己的信息加到原有的数据包上,形成新的IP数据包。

链路层

  • 6,数据包将由IP层交到链路层,通过ARP协议找到MAC地址。这个层定义了通过物理网络输出数据所需的协议与硬件要求。电脑这个时候将IP数据加上以太网帧头和帧尾打包成以太网帧。

物理层

  • 7, 这个时候,电脑就可以传输以太网帧的物理数据了,使用真正的电信号走网线传输了

服务器端

  • 8,服务器一层层向上去除头部解析处理请求。
  • 9,服务器解析请求,将数据返回浏览器。

客户端

  • 10,若返回的内容有外链URL,例如图片网址,则按照以上相似步骤获取。
  • 11,浏览器渲染网页。

9, 简介DNS,什么是DNS劫持?

DNS(Domain Name System)服务,可以使用域名代替复杂的IP地址来访问网络服务器,使得网络服务的访问更加简单,而且可以完美地实现与Internet的融合,对于一个网站的推广发布起到极其重要的作用。

Paste_Image.png

查询过程:

  • 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
  • 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
  • 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
  • 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
  • 第五步:重复第四步,直到找到正确的纪录。
  • 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

本地服务器和客户端之间是迭代查询,本地服务器和其他域名服务器之间可以是迭代查询,也可以是递归查询。

DNS劫持:是互联网攻击的一种方式,通过攻击DNS服务器,或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。

参考资料:

TCP/IP协议三次握手与四次握手流程解析

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

推荐阅读更多精彩内容

  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 19,859评论 6 120
  • 转载 :http://www.cnblogs.com/maybe2030/p/4781555.html#_labe...
    奋斗live阅读 1,361评论 0 10
  • 作者:Poll的笔记博客出处:http://www.cnblogs.com/maybe2030/本文版权归作者和博...
    wshxj123阅读 2,396评论 0 19
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,047评论 6 174