为什么有协议?----两个计算机是如何在网络中交流的
协议是通信双方的一种约定,包括格式和次序,没有这些机器将无法交流
谁指定了这些网络协议 IETF
因特网协议的规则
协议的封装:
- 机器A上的某应用程序向机器B发消息,例如HTTP消息
- 机器A的网络层协议一次把该消息封装成 TCP包-->IP包-->链路层数据包
- 链路层的消息发送给交换机A
- 交换机A收到消息后发给了路由器
- 路由器去除链路层封装,检查地址,发现机器B是目的地,然后重新生成一个链路层数据包发给交换机B
- 交换机B收到消息发给机器B
应用层协议
常见的应用成协议
- 电子邮件 SMTP, POP3, IMAP
- 远程终端访问 Telnet, SSH
- Web HTTP, HTTPS
- 文件传输 FTP
- 因特网电话/视频 SIP, RTP
HTTP VS HTTPS
- HTTP 无状态协议 服务器不保存客户端任何信息 ,可以模拟会话 ,服务器端生成要给sessionId 发给浏览器放在cookie里,下次用这个cookie去请求 HTTP协议是纯文本协议,不安全
- HTTPS S代表安全
怎样安全?
https 采用的是对称加密(一个假面)和 RSA 非对称加密结合的方式
- 浏览器访问服务器 https://www.baidu.com
- 服务器 发送给浏览器 的数字证书(包含公钥和一些证书信息和数字签名,数字签名的生成方式是将公钥和证书信息 用hash算法得到结果后用CA的私钥加密,浏览器得到这些数据后可以用CA公钥解密签名 和 用hash算法 计算这些零散信息后 ,比对结果是否一致,来判断证书是否被改动过) 数字证书是为了安全的传输公钥
- 浏览器生成对称密钥,用公钥加密后发给服务器
- 服务器解密保存对称密钥
- 以后双方可以用对称密钥来通信了
TCP 传输层
TCP协议是 实现两个应用程序间可靠传输的协议 。原理:失败重传,
【QQ客户端:10022】<----- ----->【QQ服务器:443】
这一对就是socket,传输层的抽象,443是https的端口,客户端端口随意。TCP协议不管IP地址
如何处理的呢?
- 如果发送完 分组编号A的分组后,等待反馈,结果是无法识别,或没收到A,重新发送分组A
- 丢包?发送分组A后启动定时器,如果超时仍没有反馈,重发,重新启动定时器
- 固定发送的未收到确认的包不能超过4个
- 如果多组流水线发送,中间丢包了,那么后续收到的包可以先缓存起来,直到收到丢失的包,再按照元顺序全部返回给上级调用
IP 网络层
把数据包从一个主机运送到另外一台主机,中间有很多路由器设备
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
虚电路 VS 分组交换
- 虚电路 是 在网络上建立一条固定通路,在机器A和机器B通讯中始终保持连接,占用带宽
- 分组交换,就像边走边问,最终只要能到达就行
网络层采用分组交换方式
手工配置ip地址太麻烦了,都是我们去请求 DHCP服务器 在动态给我们分配ip地址(开机自动完成,DHCP服务器右我们家里的路由器充当)路由器只关注下一跳地址
NAT 解决IPV4用光问题,路由器给连它的机器自己分配局域网内的地址,例如我们家中的手机,电脑,ipad ,路由器有个NAT对照表,那个LAN段对应WAN上固定ip的不同端口
链路层
数据最终会封装为连路层帧在机器中传输
- MAC地址 相当于人的身份中,存在网卡中
- IP地址 相当于人的邮寄地址 ,存在内存中
如何知道我们要访问的 网址的ip地址呢?DNS请求
如何知道我们要访问的 ip地址的MAC地址呢?ARP广播请求
链路层根据目的MAC地址,具体决定数据下一步走向
综合
上网过程
1. 打开电脑,连上网络,只有MAC地址,没有IP地址,用DHCP获取IP , 广播一条数据包
DHCP报文:【想租IP,谁有?】----》UDP报文:【目的端口:67,源端口68】---》IP数据报:【目的地:255.255.255.255,源地址:0.0.0.0】--》以太网帧【目的地:FF..,源地址:11:27...】
DHCP返回 :你的ip:192.168.1.2 网关路由器:192.168.1.1 DNS服务器 202.102.224.69
2.访问百度 只知道域名
DNS查询:【想知道www.baidu.com的ip】----》UDP报文:【目的端口:53,源端口XX】---》IP数据报:【目的地:202.102.224.69,源地址:192.168.1.2】--》以太网帧【目的地:??..,源地址:11:27...】
3.上一步骤的,目的地mac地址还没有咋办?
通过ARP广播 获得网关路由器的MAC地址 假设为88:25:93:79:E0:C8,放在2的报文中,此时可以将2的DNS查询发出了
4.获得百度的ip 假设 115.239.211.112,建立TCP连接(socket)发送HTTP请求
HTTP:【GET/www.baidu.com】----》UDP报文:【目的端口:80,源端口XX】---》IP数据报:【目的地:115.239.211.112,源地址:192.168.1.2】--》以太网帧【目的地:88:25:93:79:E0:C8,源地址:11:27...】
我关于这些协议层的目前的理解:组合起来使用,拆开看的话,链路层管 下一步怎么走,发给那个中间路由,要得到中间路由的Mac地址(通过ARP),网络层记录一下ip地址,分配ip地址(DHCP服务,NAT服务),供链路层传输的时候使用,路由器会把 链路层剥掉,通过ip层重新定制链路层, TCP传输层关注进程间的可靠通信,具体ip是什么,怎么传出的不关注,关注可靠传输, 应用层则关注通信安全。
相关推荐
《计算机网络》的特点是概念准确、论述严谨、内容新颖、图文并茂。突出基本原理和基本概念的阐述,同时力图反映出计算机网络的一些最新发展。《计算机网络》可供电气信息类和计算机类专业的大学本科生和研究生使用,...
计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案计算机网络_电子版书和答案...
西北工业大学 计算机网络实验,实验报告 计算机网络实验课程通常是计算机科学、信息技术或相关领域的学生学习网络技术的一部分。在这门课程中,学生通常会学习有关计算机网络的基本原理、协议、网络拓扑结构、网络...
计算机网络是计算机科学和信息技术的核心领域,本资源提供了计算机网络第8版答案,涵盖了计算机网络的基本概念、分类、网络协议、网络安全等方面的知识点,详细解释了计算机网络的定义、分类、网络协议、网络安全等...
计算机网络期末考试试题及答案 计算机网络是计算机技术发展的重要组成部分,对于计算机网络的研究和理解是非常重要的。以下是计算机网络期末考试试题及答案的相关知识点总结。 一、计算机网络的基本概念 * 计算机...