Day 3 网络基础

网络基础

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

  互联网协议:指的就是一系列统一的标准,这些标准称之为互联网协议。互联网的本质就是一系列的协议,总称为‘互联网协议’(Internet Protocol Suite)。

  互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

二、tcp/ip五层模型

  总结如下图

   tcp的三次握手和四次挥手,如下图:

  socket:我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

 

  结论:唯一标示互联网中唯一程序:ip+port.

  补充:socket层,位于应用层与传输层之间,把tcp/udp封装起来,为开发人员提供简单接口。所以,程序员只需要遵循socket的标准,写出的程序自然遵循tcp或udp协议。

 

三、用户上网流程  

第一步:本机获取四大要素:

    • 本机的IP地址(Ipv4)
    • 子网掩码
    • 网关的IP地址
    • DNS的IP地址

  网关:例如,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡。

第二步:输入网址

  打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

第三步:dns协议(基于udp协议)

  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上。

  DNS名解析过程,如下图:

 

  递归查询:问路,别人帮自己问路

  迭代查询:问路,别人说我不知道,但是我可以告诉你谁知道,你自己去问

  13台根服务器:要用来管理互联网的主目录,全世界目前只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。

  域名定义:http://jingyan.baidu.com/article/1974b289a649daf4b1f774cb.html

  顶级域名:以.com,.net,.org,.cn等等属于国际顶级域名,根据目前的国际互联网域名体系,国际顶级域名分为两类:类别顶级域名(gTLD)和地理顶级域名(ccTLD)两种。类别顶级域名是以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等结尾的域名,均由国外公司负责管理。地理顶级域名是以国家或地区代码为结尾的域名,如"CN"代表中国,"UK"代表英国。地理顶级域名一般由各个国家或地区负责管理。

  二级域名:二级域名是以顶级域名为基础的地理域名,比喻中国的二级域有,.com.cn,.net.cn,.org.cn,.gd.cn等.子域名是其父域名的子域名,比喻父域名是abc.com,子域名就是www.abc.com或者*.abc.com.。一般来说,二级域名是域名的一条记录,比如alidiedie.com是一个域名,www.alidiedie.com是其中比较常用的记录,一般默认是用这个,但是类似*.alidiedie.com的域名全部称作是alidiedie.com的二级。

第四步:Http内容

  假定这个部分的长度为4960字节,被嵌在TCP数据包之中。

第五步:TCP协议

  TCP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。

  TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。

第六步:IP协议

  然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。

  IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

第七步:ethernet以太网协议

  最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。

  以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

第八步:服务器端响应

  经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。

  根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。

  本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

 

转载于:https://www.cnblogs.com/LiChaoAI/p/6890367.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element里面popover里面的高度_五斗柜的高度一般是多少 五斗柜放在什么位置好

五斗柜也就是一种抽屉收纳柜,目前在卧室或是书房等空间均是可以见到。其根据使用用途的不同,进而有着高度和款式,以及摆放位置等等的区别。因此,下面带来五斗柜的高度一般是多少、五斗柜放在什么位置好,以及五斗柜里面…

【NOIP2016】愤怒的小鸟

题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说,这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如的曲线,其中a,b是Kiana指定的参数…

java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?

大家好啊,今天给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过。废话不多说,下面我要开始吹了……1、Swing下面这个是用 swing 开发的:Swing 算是…

[Java 安全]加密算法

Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符序列,常用在需用通过文本协议(比…

2个字段并在一次插入一个字段里面_elasticsearch外用与内观(二)-当插入文档时,elasticsearch都在做什么...

Previous: elasticsearch外用与内观(一)-常用功能与使用方法 在了解了es的基本用法之后,我们再来看看当插入文档数据时,elasticsearch都在做什么。首先,es的索引只是一个逻辑概念,实际上是由一个个物理分片组成的,每个分片就是一个…

学习Spring Data JPA

简介 Spring Data 是spring的一个子项目,在官网上是这样解释的: Spring Data 是为数据访问提供一种熟悉且一致的基于Spring的编程模型,同时仍然保留底层数据存储的特​​殊特性。它可以轻松使用数据访问技术,可以访问关系和非关系…

git 常用commands(转)

常用 Git 命令清单 作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令记不住。 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是…

检查集群状态命令_轻松管理Kubernetes集群的7个工具

Kubernetes正在不断加快在云原生环境的应用,但如何以统一、安全的方式对运行于任何地方的Kubernetes集群进行管理面临着挑战,而有效的管理工具能够大大降低管理的难度。K9sk9s是基于终端的资源仪表板。它只有一个命令行界面。无论在Kubernetes仪表板Web …

vscode 模糊部分代码_本周 GitHub 速览:您的代码有声儿吗?(Vol.38)

作者:HelloGitHub-小鱼干摘要:还记得花式夸赞程序员的彩虹屁插件 vscode-rainbow-fart 吗?它后续有人啦!JazzIt 同它的前辈 vscode-rainbow-fart 一样,是一个能让代码“发声”的工具,它会在脚本运行成功或者…

C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)

今天写的是二叉树操作的实验,这个实验有三个部分: ①建立二叉树,采用二叉链表结构 ②先序、中序、后续遍历二叉树,输出节点值 ③销毁二叉树 二叉树的节点结构定义 typedef struct BiTNode //二叉树的节…

Django 入门项目案例开发(中)

关注微信公众号:FocusBI 查看更多文章;加QQ群:808774277 获取学习资料和一起探讨问题。 昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务; 以下的业务都是假设的…

纵横公路造价软件学习_通辽分公司组织开展2020年 养护工程造价预算培训

为进一步提高养护员工业务水平和业务素质,提升熟练掌握信息化公路工程造价预算,11月5日-11月8日期间,通辽分公司组织开展了2020年养护工程造价预算培训。养护科全体人员、基层所站统计人员共计16人参加培训。本次培训邀请了纵横公路工程造价管…

arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图

作者:吴琳;陈天舒,山东大学环境科学(大气化学)博士在读数据(Excel格式):多站点污染物数据(国,省,市控点),站点经纬度信息绘…

JavaScript覆盖率统计实现

主要需求 1、 支持browser & nodejs 由于javascript既能够在浏览器环境执行,也能够在nodejs环境执行,因此须要能够统计两种环境下单元測试的覆盖率情况。 2、 透明、无缝 用户写单元測试用例的时候,不须要为了支持覆盖率统计多写代码&…

单元格内容分列多行_姓名太多,放在一列打印时浪费纸张,可以分成多行多列打印...

在日常工作中,往往会碰到这种情况(如下图):只有一列数据,而且比较多,如果打印起来就浪费纸张,然后复制、粘贴把表格变成几列,方便打印。今天小编和大家分享不用复制、粘贴,就能快速完成一列分成…

Java中接口、抽象类与内部类学习

2019独角兽企业重金招聘Python工程师标准>>> Java中接口、抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类和抽象方法 抽象方法:仅有声明而没有方法体。 抽象类:包含一个或多个抽象方法的类&am…

docker导入镜像 liunx_docker扫盲?面试连这都不会就等着挂吧

推荐阅读:java喵:6大面试技能树:JAVA基础JVM算法数据库计算机网络操作系统​zhuanlan.zhihu.com一只Tom猫:都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”!​zhuanlan.zhihu.com现…

Linux iptables:规则原理和基础

什么是iptables? iptables是Linux下功能强大的应用层防火墙工具,但了解其规则原理和基础后,配置起来也非常简单。 什么是Netfilter? 说到iptables必然提到Netfilter,iptables是应用层的,其实质是一个定义规…

太阳系八大行星碰撞的视频_火星的身世:从太阳系的起源说起

大约46亿年前盘状的太阳星云从一大片又冷又暗的气体云中诞生太阳自己并没有任何暴露确切年龄的线索,我们之所以能够知道太阳系的“生日”,是因为迄今从陨石中找到的最古老固体物质,年龄约为45.68亿年。一般认为,太阳系的各个地方是…

博科查看光功率_法拉第旋光器:非互易性旋转光的偏振

法拉第旋光器是利用法拉第效应制作的光学器件,当入射光正向(或反向)进入旋光器时,入射光偏振面会发生旋转。法拉第效应1845年,法拉第发现:当一束平面偏振光通过置于磁场中的磁光介质时,平面偏振光的偏振面就会随着平行…