1.TCP/UDp区别
TCP(传输控制协议):是基于连接的协议。即在正式收发数据前,必须和对方建立可靠的连接(至少需要三次对话才能保证TCP连接,三次对话的目的使数据包发送和接受同步)。
UDP(用户数据报协议):是面向非连接的协议。不用和对方建立连接,直接将数据包发送过去。(适用于传输少量数据)
TCP | UDP |
面向连接 | 面向非连接 |
可靠 | 非可靠 |
传输大量数据 | 传输少量数据 |
慢 | 快 |
2.TCP如何保证可靠性
在TCP的连接中,数据必须以正确的数据送达对方。(TCP的可靠性通过顺序编号和确认(ACK)来实现的)
TCP在开始传输一个段时,为准备重传而首先把该段插入到队列之中,同时启动时钟。其后,如果收到了接受端对该段的ack
信息,就将该段从队列中删去,如果在规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中对数据可靠传输做了保障,握手和断开都需要通讯双方确认,数据传输也需要双方确认成功。在协议中还规定了:分包、重组、重传等规则。而UDP主要是不可靠传输,不能保证数据正常到达目的地。
(数据包校验、对失序数据包重排序、丢弃重复数据、应答机制、超时重发、流量控制)
3.常见的路由选择协议
Rip协议:底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。
OsPF协议;底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
4.OSI七层模型与TCP/IP五层模型
七层模型:
层 | 功能 | 协议 |
应用层 | 文件传输、电子邮件、文件服务 | TFTP、HTTP、FTP、DNS(域名解析协议)、SMTP |
表示层 | 数据个事哈、代码转换、数据加密 | |
会话层 | 解除或者建立与别的节点的联系 | |
传输层 | 提供端到端的接口 | TCP、UDP |
网络层 | 为数据包选择路由 | IP、ICMP、RIP |
数据链路层 | 传输有地址的帧以及错误检测 | PPP、ARP |
物理层 | 以二级制数据形式在物理媒体上传输数据 | ISO |
五层模型
应用层 |
| |
传输层 | 交换机、路由器 | |
网络层 | 交换机、路由器 | IP、arp |
数据链路层 | 网桥、交换机、网卡 | udp、tcp |
物理层 | 中继器、集线器 | ftp、dns、pop3、http |
5.地址分类
ipv4
A类地址:以0开头,第一个字节范围:0~127
B类地址:以10开头,第一个字节范围:128~191
C类地址:以110开头,第一个字节范围:192~223
D类地址:以1110开头,第一个字节范围:224~239
6.地址解析协议(ARP)
首先,每台主机都会在自己的ARP缓冲区建立一个ARP列表。以表示IP地址和MAC地址对应关系。
当源主机需要将一个数据包发送到目的主机时,首先会检查自己的ARP列表中是否存在该IP对于的MAC地址。如果存在,直接将数据包发送这个MAC(局域网地址)地址。如果没有,就向本地网段发送一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
7.TCP和UDP对应的协议
TCP对应的协议:
- FTP(传输文本协议):端口:2:1
- Telnet(远程登录的端口):端口:23
- SMTP(简单的邮件传输协议): 端口:25
- POP3(邮件接收协议): 端口:110
UDP对应的协议:
- DNS(域名解析协议):将域名转化为IP。端口:53
- SNMP(简单网络管理协议):端口:161
- TFTP(简单文件传输协议):端口:69
8.NAT协议、DHCP协议、DNS协议
NAT协议:网络地址协议(接入广域网技术)。将私有(保留)地址转化为合法的IP地址的转化技术。完美解决了IP不足的问题,还能避免来自网络外的攻击。
DHCP协议(动态主机设置):是局域网的网络协议。使用UDP协议工作。主要用于给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DNS协议(域名系统):将域名和IP地址相互映射的一个分布式数据库。方便访问互联网。
9.子网掩码作用
将某个IP地址划分为网络地址和主机地址两部分。
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。
10.路由器作用
分组交换,转发收到的分组。
11.数据交换的几种方式和特点
- 电路交换:整个报文的比特流连续的从源点直达终点。好像在一个管道中传输。
- 报文交换:整个报文先传送到相邻节点,全部存储下来后查找转发表,转发下一个节点。
- 分组交换:单个分组(报文的一部分)传到相邻节点,存储下来后查找转发表,转发到下一个节点。
12分用和复用
多个用户使用一个IO资源 发送消息 时,我们称之为“复用”。
多个用户使用一个IO资源 接收消息 时,我们称之为 “分用” 。
13.数据链路层使用的主要通道类型、以及三个基本问题
主要通道类型:
- 点到点信道
- 广播信道
三个基本问题:
1.封装成帧; 就是在数据的前后添加尾部和首部,这样就构成了一个帧
2.透明传输:发送端的数据链路层在数据中出现控制字符”SOH”和“EOT”时候,需要在前面插入一个转义字符”ESC”,这种方式称之为字节填充或者字符填充。
3.差错检测:CRC校验
14.TCP的拥塞控制
拥塞控制算法:慢开始、拥塞控制、快重传、快恢复。
15.为什么TCP链接需要三次握手,两次不可以么,为什么?
为了防止 已失效的链接请求报文突然又传送到了服务端,因而产生错误。
16.TCP与UDP之间的区别
- Tcp面向连接,UDP面向非连接即发送数据前不需要建立连接。
- Tcp提供可靠的数据传输服务,UDp无法保证
- TCP面向字节流,UDP面向报文段
- TCP数据传输慢,UDP数据传输快。
17.在浏览器中输入网址后执行会发生什么?
- 查找域名对应的ip地址。这一步会一次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器。
- 浏览器向ip对应的web服务器发送一个HTTP请求。
- 服务器响应请求,发挥网页内容。
- 浏览器解析网页内容
18.HTTP协议包括那些请求
- GET:对服务器资源的简单请求
- POST用于发送包含用户提交数据的请求
- HEAD:类似于GET请求,不过返回的响应中没有具体的内容,用于获取报头。
- PUT:传说中请求文档的一个版本。
- DELETE:发出一个删除指定文档的请求
- TRACE:发送一个请求的副本,以跟踪器处理进程
- OPTOIONS:返回所有可用的方法,检查服务器支持那些方法
19.HTTP中GET和POST的区别
从原理性看:
- GET用于信息获取。
- POST请求表示可能修改服务器上的资源的请求
从表面上看:
- GET请求的数据会附在URL后面,POST的数据放在HTTP报头
- POST安全性比GET高
20.线程同步的方式有那些
-
临界区:通过对多线程的串行化来访问公共资源或者一段代码,速度快,适合控制数据的访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程视图访问公共资源,那么在一个线程进入后,其他视图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。
-
互斥量:采用互斥对象机制。只有拥有互斥对象的线程才能访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。
-
信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。
-
事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作。
21.进程的通信方式有哪些?
管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe)
- 管道:是一种半双工的通信方式,数据只能单项流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程。(命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信)
- 信号量:是一个计时器,用来控制多个进程对资源的访问,它通常作为一种锁机制。
- 消息队列:是消息的链表,存放在内核中并由消息队列标识符标识。
- 共享内存:就是映射一段能被其他进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问。
- socket
22.什么是缓冲区溢出?有什么危害?
缓冲区溢出指计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法的数据上。
危害:
- 程序崩溃,导致拒绝服务
- 跳转并执行一段恶意代码
原因:程序中没有仔细检查用户输入
23.分页和分段的区别
页是信息的物理单位,是为了管理主存方便而划分的,对用户是透明的。
- 段是信息的逻辑单位,是根据用户的需求划分的,因此段对用户是可见的;
- 段的大小不定,由它所完成的功能决定;页的大小固定,由系统决定
- 段向用户提供二维地址空间;页向用户通过一位地址空间
- 段是信息的逻辑单位,便于存储保护和信息共享,页的保护和共享收到限制。
24.操作系统的调度策略
先来先服务(FCFS)、优先级、时间片轮转、多级反馈
25.进程的同步机制
进程同步是进程之间直接的相互作用,是合作进程间有意识的行为,典型的例子是公共汽车上司机与售票员的合作。只有当售票员关门之后司机才能启动车辆,只有司机停车之后售票员才能开车门。司机和售票员的行动需要一定的协调。同样地,两个进程之间有时也有这样的依赖关系,因此我们也要有一定的同步机制保证它们的执行次序。
四种同步和互斥机制:信号量、管程、会合、分布式系统。