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,一经查实,立即删除!

相关文章

leetcode 349. 两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2] 示例 2: 输入:nums1 [4,9,5], nums2 [9,4,9,8,4] 输出:[9,4] 代码 class Solution…

a4988 脉宽要求_基于STM32的微型步进电机驱动控制器设计

基于STM32的微型步进电机驱动控制器设计摘 要: 设计了一种微型步进电机驱动控制器,通过上位机界面修改步进电机转速、旋转角度、细分系数。该设计以STM32F103T8U6作为主控制器,以A4988步进电机驱动设备,上位机串口界面作为人机接口…

运行linux的机器死机了_如何在任何机器上轻松运行任何Linux工具

运行linux的机器死机了by Flavio De Stefano由弗拉维奥德斯特凡诺(Flavio De Stefano) 如何在任何机器上轻松运行任何Linux工具 (How to easily run any Linux tool on any machine) Have you ever encountered a situation like the ones below?您是否遇到过以下情况&#x…

【实战】烂泥:一次纠结的系统安装

这应该是昨天的事了,因为昨天太忙了,就没有贴出来,今天下午我想了想还是贴出来吧。一是给自己一个提醒,二是也给坛子里面的午饭们再以后安装系统中提供一种思路。 环境:thinkpad x100e笔记本,2G内存&#x…

Android动态改变TextView字体颜色

Android动态改变TextView字体颜色 分类&#xff1a; Android 2012-06-04 21:56 141人阅读 评论(0) 收藏 举报androidcolorslayout必须在在res/color文件夹下面创建一个selector的xml [html] view plaincopyfont_style_colors.xml <selector xmlns:android"http://…

关于小程序的一些坑的总结

最近开发的小程序&#xff0c;有很多的坑。 1.底部的tabbar 不可更改尺寸和字体的大小。限制的还是蛮死的&#xff01;不知道是不是我没找到方法去修改还是咋的。淡淡的忧桑&#xff5e;&#xff5e;&#xff5e; 2.可以动态的设置小程序的顶部导航栏的字&#xff0c;但是不可…

开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区

开源项目贡献者by David Herron大卫赫伦(David Herron) 如何认识您的开源项目贡献者并发展您的社区 (How to recognize your open source project contributors and grow your community) There’s a truism — if a community is not growing, it is slowly dying. How is yo…

华农java实验7_国家实验教学示范中心

我校有生物学实验教学中心、作物学实验教学中心、水产养殖实验教学中心、动物医学实验教学中心4个国家级实验教学示范中心&#xff0c;10个省级实验教学示范中心。生物学实验教学中心华中农业大学生物学实验教学中心成立于2001年7月&#xff0c;是直属于生命科学技术学院的校级…

jsonpickle数据序列化

json&pickle数据序列化 json 用于字符串和python数据类型间进行转换 pickle 用于python特有的类型 和 python的数据类型间进行转换序列化&#xff1a;把字典或者字符串的内存对象 存到硬盘上&#xff1b; 反序列化&#xff1a;就是从硬盘上加载出来 json序列化与反序列化…

array_walk与array_map的区别

1.array_walk是用于用户自定义的函数&#xff0c;所以想用array_walk($aIds, "trim");去掉数据元素中的空格是达不到目的的只能用array_walk($aIds, create_function(&$val, $val trim($val);)); 2.想完成上边的需求其实更加合适用$aNewIds array_map("t…

shopify二次开发教程_详细教程:如何将Shopify的Storefront API与React和Redux结合使用...

shopify二次开发教程by Chris Frewin克里斯弗里温(Chris Frewin) 详细教程&#xff1a;如何将Shopify的Storefront API与React和Redux结合使用 (A detailed tutorial: how to use Shopify’s Storefront API with React and Redux) 电子商务为所有人&#xff01; (…网站&…

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

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

leetcode 57. 插入区间

给出一个无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#xff1a; 输入&#xff1a;intervals [[1,3]…

《C++标准程序库》学习笔记1--第二章第三章

————————— 第二章 —————————1.&#xff08;P11&#xff09; C规定&#xff1a;除了以typename修饰外&#xff0c;template内的任何标志符号都被视为一个值(value)而非一个型别。 eg. template <classT>classMyClass{ typename T::SubType *ptr; };…

让物联网真正起飞的关键:无线充电

从一般郊区家庭到工厂装配生产线&#xff0c;我们生活中的每个角落都正在经历“智能”技术强化的过程。物联网&#xff08;IoT&#xff09;技术看似无所不在&#xff0c;但是为这些装置持续供电仍是一大挑战&#xff0c;除非这个问题能够解决&#xff0c;否则许多令人兴奋的物联…

【NOIP2016】愤怒的小鸟

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

leetcode 127. 单词接龙(bfs)

给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典&#xff0c;找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则&#xff1a; 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序…

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

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

如果您是JavaScript开发人员,为什么要进行增强现实-以及如何开始

by Evaristo Caraballo通过Evaristo Caraballo 如果您是JavaScript开发人员&#xff0c;为什么要进行增强现实-以及如何开始 (Why you should do Augmented Reality if you are a JavaScript developer — and how to start) If you are a JavaScript coder who is still late…

[Java 安全]加密算法

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