计算机网络
五层协议:应用层、运输层、网络层、数据链路层、物理层
数据链路层:定义通信协议控制数据在物理层上传输
基本问题:封装成帧、透明传输、差错检测
通信步骤:
1、 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
2、 结点A把封装好的帧交给结点B
3、 如果结点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报交给网络层,否则丢弃这个帧。
信道类型:
(1) 点对点信道—>点对点协议ppp
(2) 广播信道——>CSMA/CD协议
使用广播信道的数据链路层:以太网
网络层:为分组交换网上的不同主机之间提供逻辑通信
互联网设计思路:网络层向上只提供简单灵活、无连接的、尽量努力交付的数据报服务。
网际协议IP
IP协议可以让性能各异的网络在网络层上看起来是统一的网络
中间设备:
1、 转发器:物理层使用的中间设备
2、 网桥、桥接器:数据链路层使用的中间设备
3、 路由器:网络层的中间设备
4、 网关:网络层以上的中间设备
IP地址编码的三个阶段:
(1) 分类的IP地址
(2) 子网的划分
(3) 构成超网
(1)分类的IP地址:
IP地址={<网络号>,<主机号>}
A类地址:0开头,网络号8位,主机号24位
B类地址:10开头,网络号16位,主机号16位
C类地址:110开头,网络号24位,主机号8位
D类地址:多播地址
E类地址:保留为今后使用
(2)划分子网
三级IP地址:{<网络号>,<子网号>,<主机号>}
划分子网只是把IP地址的主机号这部分进行再划分,而不改变IP地址原来的网络号
子网掩码:从IP数据报的首部无法看出源主机或者目的主机所连接的网络是否进行了子网的划分,使用子网掩码可以方便的从IP地址中提取出网络地址。
网络地址=IP地址和子网掩码相与
(3)划分超网
IP地址={<网络前缀>,<主机号>}
如128.14.35.7/20
IP地址与硬件地址:
网络层和网络层以上使用IP地址,IP地址放在IP数据报的首部
数据链路层以下用的是硬件地址,硬件地址放在MAC帧的首部
主机和路由怎么知道应当在MAC帧的首部填入什么样的硬件地址?
地址解析协议ARP
IP分组转发的流程
路由器只根据目的站IP地址的网络号进行路由选择
路由表:(目的网络地址,下一跳地址)
路由表的产生:
分层次的路由选择协议:自治系统内部使用内部网关协议,自治系统外使用外部网关协议
内部网关协议:RIP、OSPF
外部网关协议:BGP
运输层:为两台主机的应用进程间提供端到端的逻辑通信
两个计算机的进程要互相通信,不仅需要IP地址,,还需要知道对方的端口号
UDP协议:不需要建立连接,尽最大努力交付,面向报文,没有拥塞控制
TCP协议:面向连接,可靠交付,全双工通信,面向字节流
套接字:TCP连接的端点
socket=(ip地址:端口号)
TCP连接建立:三报文握手
TCP连接释放:四报文挥手
应用层:定义应用进程间的通信和交互的规则
域名系统DNS
文件传输协议FTP
超文本传输协议HTTP
http协议用于客户端和服务器端之间的通信,通过相应和请求达成通信
HTTP是不保存状态的协议,对于发送或者相应都不做持久化处理
持久连接节省通信量
使用Cookie进行状态管理
告知服务器意图的HTTP方法:
GET:获取资源
POST:传输实体主体
PUT:传输文件
HTTP报文
请求报文:请求行+首部字段+报文主体
相应报文:状态行+首部字段+报文主体
HTTP状态码:客户端向服务端发送请求时,描述返回的请求结果
1XX: 信息性状态码 接收的请求正在处理
2XX: 成功状态码 请求正常处理完毕
3XX: 重定向状态码 需要附加操作完成请求
4XX: 客户端错误状态码 服务器无法处理请求
5XX: 服务器错误状态码 服务器处理请求出错
200 客户端请求在服务器端被正常处理了
204 客户端请求在服务器端被正常处理了,但没有资源返回
206 客户端进行了范围请求,服务器成功执行了请求
301 永久性重定向,请求的资源已被分配了新的URI
302 临时性重定向
400 报文中存在语法错误
401 发送的请求需要有通过HTTP认证
403 请求资源的访问被服务器拒绝
404 服务器无法找到请求的资源
500 服务器端执行请求出现了故障
503 服务器超负荷或停机维护
访问一个网页背后的流程:输入域名->DNS服务器将域名解析为IP地址->客户端与服务器建立TCP连接->客户端向服务器发送HTTP请求报文->服务器向客户端发送HTTP响应报文->浏览器渲染页面,断开TCP连接