又到了每课一篇的时间了

1、什么是互联网协议及为何要有互联网协议

互联网协议本质就是规则,为了实现计算机通过互联网交换数据,而制定的对数据“包装”的制度,互联网其实就是由大量的互联网协议组成。

在 RFC 791 中对于 IP协议是这样定义的:

     “互联网协议(IP)特指为实现在一个相互连接的网络系统上从一个源到一个目的地传输比特数据包(互联网数据包)所提供必要功能的协议。其中并没有增加端到端数据可靠性机制、流量控制机制、排序机制或者其它在端到端协议常见的功能机制。互联网协议可在其支持的网络上提供相应服务,实现多种类型和品质的服务。”
    假如你就会中文,跟一个就会德语的老外打电话,你俩瓦勒瓦勒半天,估计双方都一脸懵逼,于是现在全球人都学英语。同样对于两台计算机来说想要通过互联网互相传输数据,就必须遵守的规则就是互联网协议,有了互联网协议让计算机之间既找得到又传的开。

2、osi五层模型

互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层,然而老师就主要讲了五层这款。

如图,用户输送数据由上向下,接受数据又下向上。

①物理层

物理层就是从物理层面联网,你想上网不插网线也得连WIFI吧,让你的计算机加入互联网。物理层的作用就是基于传输设备的高低电压发送信号,高压1、低压0。

②数据链层

接上文,传输一大堆高低电压,就是大堆110010101010111,完全理解不了是什么,让信号变得有序可被理解就必须规定每组多少信号,每组都是什么意思,于是数据链层的作用就是定义了电信号的分组方式,整个网络协议都是基于这些规则。

以太网协议

想当年山头林立,各家规则都不一样,没办法一起玩耍,于是乎就统一使用了一个标准,就是以太网协议ethernet。

ethernet规定一组电信号组成一个数据包,叫做“帧”;每一数据帧由“报头head”和“数据date”两部分组成,头在前数据在后。

head由固定的18个字节组成

发送者/源地址 (6个字节)

接收者/目标地址(6个字节)

数据类型 (6个字节)

date 最短46字节,最长1500字节储存的数据包具体内容。

所以,一个数据包最长1518字节,超过了就分片发送。

mac地址

那么head里边的源头和目标的地址是哪来的呢?ethernet就规定了想接入internet的设备必须有网卡,发送、接受的地址就是网卡地址,就叫做mac地址。每个mac地址都独一无二,长度为48位2进制,通常由12为16进制数标示。(前六是厂商编号,后六是流水线号)

广播

计算机的社会比较原始,交流基本靠吼,A机要是给B机通信,就吼一声B,其他诸如CDEF机并不会搭理他,依靠俩机的mac地址就可以通信了,但是他俩必须在一个同一个网络里,那么在不同的网络里怎么搞,就需要用到网络层。

③网络层

有了ehternet协议、mac地址、广播的方式,世界上每一台连上internet的计算机都可以互相通信了,但是整个互联网是由一个个单独小局域网组成的,如果世界层面传输数据还靠吼,吼遍全世界,不仅是慢,估计会GG。

所以必须区分出每一台电脑属于哪个小圈子即广播域,如果跟自己在一起就采用广播,如果不是就通过路由的方式(向不同的广播域发数据包),但是mac地址作为一个物理概念的地址是无法区分的,所以必须引入一套新的地址来区分不同的广播域,即网络地址。

IP协议

规定网络地址的协议就叫IP协议,它定义的地址就叫IP地址,广泛采用的是v4版本(ipv4),它规定 ip地址由32位2进制表示,范围0.0.0.0-255.255.255.255,一个IP地址通常写成四段十进制数 ,for example    192.168.1.24

IP地址分为 网络部分 和 主机部分,前者标示子网,后者表示主机,二者必须一起才能确认是否处于同一个子网。

子网掩码

子网掩码就是子网特称参数,形式上等同于IP地址,也是32为二进制,网络部分全为1,主机部分全为0。比如网络部分是前24位,主机部分是后8位,就是 11111111,11111111,11111111,0000000,转成十进制就是255.255.255.0

有了子网掩码,就能判断两个IP是否在同一个网络,将IP地址与子网掩码AND计算(两个数为都是1,结果是1,其他都为0),然后比较结果,如果相同就是同一个子网络。

IP协议的用途就是:1、为每一个计算机分配IP地址;2、确定哪些地址在同一个子网络。

IP数据包

IP数据包也是又 head data两部分组成,无须为IP包定义单独的栏位,直接放入以太网包的DATA部分。

head 长度20到60字节

data 最长为65515字节

但是以太网数据包DATA部分最长只能1500字节,如果超过了,就分成几个以太网数据包分开发送。

④传输层

网络层区别子网,数据链层的MAC地址帮我们找到主机,然而计算机上的应用程序之间如何确定数据传输呢?就是端口,端口就是应用程序与网卡关联的编号。端口范围0-65535,0-1023为系统占用端口。

传输层的作用就是建立端口到端口的通信。

端口通信一般有TCP协议跟UDP协议。

TCP协议:

可靠的传输,TCP的数据包没有长度限制,但一般为了保证网络效率,通常长度不超过IP数据包的长度,确保单个TCP数据包不必再分割。

以太网头 IP头 TCP头 数据。

UDP协议:

不可靠的传输,报头部分只有8个字节,总长度不超过65535字节,正好放进一个IP数据包。

以太网头 IP头 UDP头  数据

下边是我用通俗易懂来说下TCP协议

A B之间要传数据,A向B发个信息 X,如果B同意了,就回个X+1(确保接受方是B,不是CDEFG),并同时向A发个Y;A收到B发来的两条信息,再向B发出Y+1(确保对接收方是A,不是路人)。当A传输完数据之后,只可单方面结束A传出,不能结束B的传出数据拔网线不算。从而确保传输数据的完整,是可靠的。

⑤应用层

我们用的应用程序都工作于应用层,互联网是开放的,每个人都可以开发自己的应用,为了可以互相通信,必须规定好数据的组织形式。所以应用层的作用就是 规定应用程序的数据格式。

3、用户上网流程

1、首先需要一台能上网的计算机。

2、打开浏览器,输入想要访问的网址,比如WWW.QQ.COM

3、首先看本地缓存有没有WWW.QQ.COM的记录,如果没有,联系根服务器,询问对应的IP地址。

4、根服务器返回信息应该访问.COM域管理服务器,询问IP地址。

5、QQ.COM域服务器查询后告诉计算机对面的IP地址是1.1.1.1。

6、将1.1.1.1写入缓存并访问1.1.1.1。

7、将所要的HTTP数据嵌入TCP数据包中→TCP数据包设置接收方和发送方端口→再将TCP数据包嵌入IP数据包,设置双方IP地址→IP数据包嵌入以太网数据包,设置双方MAC地址→转化为电信号传输→经过多个网关的转发,QQ的服务器1.1.1.1接收到了以太网数据包→以太网数据包取出IP数据包,再从中取出TCP数据包,从中读出HTTP请求,接着作出HTTP相应,再用TCP协议发回来,本机接到HTTP相应后,就可以将网页显示出来,完成一次上网。

DAY3 网络协议相关推荐

  1. 网络协议丨FTP协议和P2P协议

    现在不管是下载文件还是浏览内容,我们都是使用HTTP协议. 但是除了HTTP协议以外,也存在其他的协议. 比如文件下载,就有FTP协议,也就是文件传输协议.FTP 采用两个 TCP 连接来传输一个文件 ...

  2. Wireshark网络抓包(三)——网络协议

    一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...

  3. 网络协议关系拓扑图 很全面 很好

    NETWORK ASSOCIATES GUIDE TO COMMUNICATIONS PROTOCOLS 网络协议关系拓扑图 很全面 很好 值得收藏!

  4. java相关网络协议无响应_java网络协议有哪些

    上网的途径有很多,java是最普遍的,那么卑java网络协议有哪些?了解网络安全常识,首先就要了解计算机网络安全有哪些基本注意事项,下面佰佰安全网小编就带您认识一下吧. 概念 协议是指计算机通信网络中 ...

  5. 网络协议OSI、TCP/IP协议、Socket套接字和第三方AsyncSock的使用等解析

    一.网络协议定义 1.OSI参考模型:全称(Open System Interconnection), 开放式系统互联参考模型.是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为七层,只要目的是为 ...

  6. 协议分析中的TCP/IP网络协议

    " TCP/IP协议作为互联网的基础,在协议分析中不可或缺,本文介绍在对协议进行分析还原的过程中的一些要点,快速掌握协议还原的精髓." 注意,本文比较枯燥乏味,若非需要了解TCP/ ...

  7. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  8. 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf

    计算机网络实验教案(6)网络协议分析-IP协议3.pdf (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络实验> ...

  9. 网络协议 19 - RPC 协议:远在天边近在眼前

    [前五篇]系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HT ...

最新文章

  1. Eslint中no-undef的检查报错
  2. python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)
  3. Flink如何取代JStorm,成为字节跳动流处理唯一标准?
  4. 获取打印的html代码怎么写,javascript如何输出?
  5. 实时光线追踪技术:业界发展近况与未来挑战
  6. 拾取模型的原理及其在THREE.JS中的代码实现
  7. 经典滑盖全面屏手机大降价!荣耀Magic2到手1799元
  8. 辽宁工业大学有没有计算机专业,辽宁工业大学(专业学位)计算机技术考研难吗...
  9. linux配置iscsi无账号密码,linux4 如何配置iscsi启动器
  10. socket上传nsdictionary的json数据异常
  11. Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
  12. Windows server 2008 r2 基于LLS的Web和FTP服务搭建(基本)
  13. httpclient中 RequestEntity和RequestBody区别
  14. Java并发编程一线程池简介
  15. 无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)
  16. 计算机专业的学生简历范文,计算机专业学生的简历范文精选
  17. rust火箭下楼_rust火箭基地刷新 | 手游网游页游攻略大全
  18. 韩国2018年GDP增速为2.7% 人均GNI或超3.1万美元
  19. 快速安装oh-my-zsh的插件zsh-syntax-highlighting 语法高亮
  20. [美赛F奖][数学建模][经验贴]2021美赛F奖的那些事

热门文章

  1. 利用HTML、CSS、JS和Swiper插件实现抖音视频滑动功能
  2. 圣诞树(用HTML制作,绝对漂亮)
  3. 记录一次Redis未授权getshell几种常见方法
  4. 基于labview的自动饮料售卖机
  5. [附源码]JSP+ssm计算机毕业设计富坤橱柜有限公司产品管理信息系统4j1na【源码、数据库、LW、部署】
  6. 信息学奥赛C++语言:美人松的高度2
  7. Cadence仿真——直流小信号分析(AC)
  8. 跨境亚马逊注册流程图-企业店铺
  9. 我的msn网络收藏夹,老记不住,就写到这里了
  10. 二叉树公共祖先问题-代码随想录-刷题笔记