计算机基础-day3
网络基础
什么是互联网协议?
互联网协议是计算机网络中为进行数据交换而建立的规则、标准或约定的集合,其定义了计算机如何接入internet,以及接入internet的计算机间通信的一系列统一标准,
为什么要有互联网协议?
就像人与人之间沟通一样,良好的沟通需要用相同的语言,比如都用普通话交流,当交流时各用各自擅长的语言,我用普通话,你用英语,其他人有用法语德语,就会造成沟通上的障碍,而接入网络的不同的计算机之间也存在这一问题,所以需要有一种“共同语言”来支撑不同操作系统的计算机之间的交流,而“互联网协议”就是用来提供这一标准的。
TCP/IP五层模型

应用层(Application layer):为用于通信的应用程序和用于消息传输的底层网络提供接口,常见的应用层协议有:HTTP(超文本传输协议)、HTTPS(安全的超文本传输协议)、FTP(文件传输协议)等,不同的应用能够产生不同的数据。
传输层(Transport Layer):实现端到端的数据传输,在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。主要协议为TCP(可靠)协议和UDP(不可靠)协议,传输的是数据报。
网络层(Network Layer):实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。主要协议是IP协议、ARP(地址解析协议)、ICMP(Internet控制报文协议),传输的是IP数据包
数据链路层(Data Link Layer):在物理层提供的服务的基础上向网络层提供服务,最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层,传输的是数据帧。
物理层(Physical Layer):为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境,常见的物理层设备有网卡、光纤、网线、串口线等,传输的是二进制数据流(bit)。
用户上网流程
1.用户浏览器输入网址(域名地址),请求访问目标地址,因为是域名地址,本机并不能识别,所以需要向配置的dns服务器地址发起解析请求,而本机和目的dns服务器不在同一网络内,所以本机首先需要寻找网关
2.获取网关mac地址,本机在当前网络内发送源mac为本机、目的mac为FF:FF:FF:FF:FF:FF、源ip为本机、目的ip为网关ip的广播(基于udp封装),该网络内所有主机接收后拆开包,网关发现目的ip为自己的,就回复响应,返回自己的mac
3.本机获取网关mac地址后,就准备向dns发起请求,但是本机只知道dns的ip地址,并不知道dns的mac地址,所以首先主机将请求数据进行传输层报头封装、网络层封装含有源ip地址和目的dns ip地址的ip头、数据链路层封装含有本机源mac地址和目的网关mac地址的帧头,以二进制数据流的方式发送给网关,网关收到数据流进行重组并解封帧头,获取目的ip地址,更换源和目的mac重新封装,根据路由表信息进行转发到dns所在网络网关,dns网关重复网关到网关的解封和封装过程将请求包转发给dns服务器
4.dns服务器获取dns网关发送的二进制数据流,进行重组获得数据帧,解除帧头获得ip数据包,解除ip头获得数据报,解除报头获得最终数据,得到用户机的域名解析请求,经过处理将域名解析结果传送给用户,封装过程参考过程3
5.用户获取到web服务器ip地址,即可进行访问,封包和解封包过程参考过程3
计算机基础-day3的更多相关文章
- 计算机基础--Java中int char byte的关系
计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...
- Java学习之计算机基础(一)
阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...
- 计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- python计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- Python之旅_计算机基础入门
一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
- day01计算机基础
今日内容 1.计算机初步认识 1.计算机认识 1. 计算机基础 1.1硬件:cpu/内存/硬盘/主板/网卡 1.2操作系统 linux:免费开源 windows mac 1.3解释器/编译器 补充:编 ...
- Java面试题 Web+EJB & Spring+数据结构& 算法&计算机基础
六.Web 部分:(共题:基础40 道,基础37 道,中等难度3 道) 122.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? [基础] 答:Web 容器加载Servlet ...
- python note 01 计算机基础与变量
1.计算机基础. 2.python历史. 宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码. 3.pyth ...
随机推荐
- Confluence代码块(Code Block)宏
有时候现在wiki上插入代码,如何让代码高亮,变的有颜色,下面这篇文章可能会帮助你,先看下django代码高亮效果图 代码块(Code Block)宏允许你在 Confluence 页面中显示代码,并 ...
- [cerc2012][Gym100624D]20181013
题意:一个序列,如果存在一个连续子序列,满足该子序列中没有只存在一次的序列,则原序列为boring,否则non-boring 题解: 分治递归 对一个序列,如果找到了一个只出现一次的数位于a[x],则 ...
- NGINX: 反向代理 Nexus
Nginx 反向代理 nexus 的服务, 一直卡在 Initialize... 解决方式是添加一个 header X-Forwarded-Proto: proxy_set_header X-Forw ...
- HDU 2717 Catch That Cow (深搜)
题目链接 Problem Description Farmer John has been informed of the location of a fugitive cow and wants t ...
- bzoj 1965 数学
首先我们可以发现每张牌的对应关系,假设序号为x的牌,经过一次洗牌后的位置为: 2*x x<=n/2 2*(x-n/2)-1 x>n/2 那么我们可以将下面的式子化简,变成2*x-n ...
- Eclipse连接海马模拟器
找到海马模拟器安装目录: 使用cmd 命令进入命令行:D: cd:D:\Program Files (x86)\Droid4X 进入模拟器所在目录 运行adb connect 127.0.0.1:26 ...
- Port-knocking 简单教程
0. "port knocking" 如字面意思,类似'敲门',只是这里敲的是'端口',而且需要按照顺序'敲'端口.如果敲击规则匹配,则可以让防火墙实时更改策略.从而达到开关防火墙 ...
- OOM有哪些情况,SOF有哪些情况
OOM 1.全称为OutOfMemoryError异常,如果虚拟机在扩展栈时无法申请足够的内存空间,抛出它: 2.Java heap异常:java.lang.OutOfMemoryError:Java ...
- 9.quartus_warning_altera_reserved_tck
编译的时候没有注意,整个工程都可以在板子上跑起来.但是做Powerplay的时候,出现了这个Critical Warning:. Critical Warning: The following clo ...
- HDU 6115 Factory LCA,暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6115 题意:中文题面 分析:直接维护LCA,然后暴力枚举集合维护答案即可. #include < ...