面试基础计算机网络(个人理解整理版)

来源:互联网 发布:java中log 编辑:程序博客网 时间:2024/05/22 03:29
因为找实习,很多公司都要看技术博客,大部分笔记,BUG修复之类的都写在印象笔记上,现在开始往上面搬。
1.OSI模型七层结构
物理层:@1.定义接口和媒体的物理特性
              @2.负责把逐个的比特从一跳移动到下一跳。(在物理媒体上传送比特流)
数据链路层(帧):@1.组帧
                     @2.物理编址(帧前添加首部)
                     @3.流量控制、差错控制
                     @4.接入控制(确定设备对链路的控制权)
网络层(分组):@1.逻辑编制(分组前附加一个首部)
              **@2.路由选择
运输层(报文):@ 1.服务点编制:运输层首部必须包括一种服务器地址(端口地址)
                             @2.分段与重装(分段后每个报文段都含有序号)
                             @3.流量控制、差错控制
                             @4.连接控制:TCP面向连接/UDP无连接
会话层(用于建立、维护并同步正在通信的系统之间的交互):@1.对话控制
                                                                                                     @2.同步

表示层(考虑的是两个系统所交换的信息的语法和语义):@1.转换
                                                                                             @2.加密,压缩
应用层(应用层向用户提供了借口,提供多种支持):@1.网络虚拟终端
                                                                                      @2.文件传送、存取和管理
                                                                                      @3.邮件服务
                                                                                      @4.名录服务(提供分布式数据库源)
2.TCP和UDP
TCP:提供面向连接的可靠的字节流服务。传输控制协议。
要建立连接,建连就要握手。
TCP提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能从一端传到另一端。
TCP端口:21端口FTP,23端口Telnet,SMTP服务25端口,HTTP服务80端口
UDP:提供不可靠的,无连接的服务。用户数据报协议。
不建立连接,也没有超时重发机制,不重发,速度九块。
UDP端口:DNS的53端口,SNMP(简单网络管理协议)161端口,QQ使用的8000和4000端口。
3.TCP三次握手和四次挥手
前提:TCP协议是全双工的
建立连接过程(3次握手):
@1.客户端发送第一个报文段SYN报文段
SYN=1,含有一个初始序列号X,并指明要连接的服务器端口
@2.服务器发送SYN+ACK报文段
SYN=1,ACK=1,确认序号ack(小写)=X+1
rend:接受窗口大小
@3.客户端
SYN=0,ACK=1,服务器序列号+1
*SYN洪泛攻击:SYN洪泛攻击属于一组成为拒绝服务攻击的安全攻击,即攻击者用大量的服务请求垄断一个系统,使这个系统因超载而拒绝为合法的请求提供服务。
四次挥手(TCP的连接的拆除需要发送四个包):
因为TCP连接时全双工的,因此每个方向都必须单独进行关闭。
FIN只是意味着这一方向上没有数据流动,首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
@1.客户端A发送一个FIN=1(用来关闭A到服务器B的数据传送)
seq=x,ack=y
@2.服务器B发送FIN=1,ACK=1,seq=y,ack=x+1
@3.服务器B关闭与客户端A的连接,发送一个FIN给客户段A
@4.客户端A发送ACK报文确认
为什么挥手是四次,而握手时三次?
答:握手时AC卡和SYN可以放在一个报文里发送,但是关闭连接时,当收到对方的FIN报文,你未必完成所有数据,所以可能发送ACK确认收到FIN,然后发送FIN表示关闭连接。
4.ICMP协议(Internet控制消息协议)
ICMP是TCP/IP协议族是一个子协议,用于在IP主机、路由器之间传递控制消息。
控制消息举例:Ping命令,Tracert(跟踪路由)命令
ICMP重要性不可忽视,ICMP是非常容易被攻击的部分。
5.HTTP和HTTPS
HTTPS是以安全为目的的HTTP通道,是HTTP的安全版,在HTTP下加入SSL层,HTTPS的安全基础是SSL
HTTP:超文本传送协议(HTTP),主要作用是在万维网上读取数据的协议。HTTP的功能像是FTP和SMTP的结合。
连接方式是无状态的(也就是说服务器不会保存有关客户的信息,客户发送报文请求,服务器发送响应进行回答),HTTP在熟知端口80上使用TCP的服务。
@1.请求报文:请求报文包括一个请求行,一个首部,有时还有一个主体
请求行:三个字节,方法(定义请求类型)+URL(定义了相关Web网页的名称和地址)+版本(HTTP的当前版本号,目前是1.1)
例:Get /usr/bin/image1 HTTP/1.1
请求报文首部:0-多个首部,向服务器发送附加信息。Accept:image/gif  Accept:image/jpeg
请求报文实体:实体通常是一些需要发送的备注信息
@2.响应报文:响应报文包括一个状态行,一些首部,一个空行,一个实体。
响应行:三个字节,版本+状态码(200)+短语(OK,表示请求成功)HTTP/1.1 200 OK
响应首部:0-多个首部,向客户端发送附加信息
空行:真的是一条空行
响应主体:包含从服务器向客户发送的文档。
@3.持续连接:在HTTP1.1以前都是非持续连接,现在默认持续连接。
非持续连接:每一个请求/响应都需要建立一次TCP连接,计算机开销很大。
持续连接:服务器在客户请求时或者时限到关闭连接。
HTTPS:连接方式是HTTP+SSL构建的可进行加密传输、身份认证的网络协议,端口443
采用https的server必须从CA申请一个证书,所以目前所有的银行系统网站,关键部分应用的都是https
6.IPv4
分类编址:地址空间分为5类,ABCDE
A、B、C三类:IP地址划分为网络标识(net-id)和主机标识(host-id)
A类:net-id(1B)+host-id(3B),数以万计的A类地址被浪费,最左一位始终为0
B类: net-id(2B)+host-id(2B),许多B类地址被浪费,最左两位应该为10
C类:net-id(3B)+host-id(1B),C类地址中的地址对大多数机构来说是不够用的,最左边三位应该为110
D类:多播地址
E类:保留为今后使用
二级编址:子网掩码 例子:子网掩码0.0.0.0/27 默认掩码 0.0.0.0/24
三级编址:超网掩码 例子:同上面相同的网络0.0.0.0/21,将八个地址合并成为一个超地址
无分类编址:当一个组织被授权使用一个地址块,这个地址块可以被划分为两部分,前缀和后缀。前缀指明网络,后缀指明主机
无分类域间路由选择(CIDR)
7.TCP拥塞避免
慢开始和拥塞避免,快重传和快恢复
8.滑动窗口滑动窗口实现面向流的可靠性
最基本的传输可靠性来源于“确认重传”机制。

TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。

发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。

接收窗口只有在前面所有的段都确认的情况下才会移动左边界。当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动,并不对后续字节确认。以此确保对端会对这些数据重传。
需要笔记分享的,可以发邮件到我邮箱,sa515044@mail.ustc.edu.cn,写明需要哪一章,谢谢。
0 0