计网期末复习之套接字编程
1、字节序(大端模式、小端模式)
字节(Byte)
传输和存储信息的最小单位。
各种数据类型,都是由字节构成。
主机字节序(Big-Endian | Little-Endian)
不同类型的机器处理数据时,会按特定的字节排列顺序读取存储器。
以unsigned short类型的数据0x0002为例
大端模式:
字节0x00放在低位地址标识的字节
字节0x02放在高位地址标识的字节
0000000000000010
低 → 高
小端模式:
字节0x00放在高位地址标识的字节
字节0x02放在低位地址标识的字节
0000001000000000
低 → 高
2、主机字节序、网络字节序,转换函数
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。
网络字节顺序采用Big-Endian排序方式,总是从低位地址开始传输。发送数据包时,程序将主机字节序转换为网络字节序;接受收数据包时,则将网络字节序转换为主机字节序。htons、ntohs、htonl、ntohl
主机 ...
计网期末复习之链路层
链路层的术语
主机和路由器: 节点(nodes)
沿着通信路径连接相邻节点的通信信道:链路(links)
有线链路(wired links)
无线链路(wireless links)
第二层的分组:数据帧(frame), 它是封装了的数据报
数据链路层的职责是将数据报从一个节点传送到与该节点直接有物理链路相连的另一个节点。
数据报可以在不同的链路上,通过不同的链路层协议发送:
e.g., Ethernet on first link, frame relay on intermediate links, 802.11 on last link
每个链路层协议提供不同的服务:
e.g., 可以提供/也可以不提供可靠数据传输服务
1、链路层提供哪些服务
封装成帧,链路接入:
封装数据报为数据帧,增加头部,尾部信息
如果是共享链路,接入链路
在数据帧头部中,用MAC地址来标识源目的MAC地址(不同于IP地址)
在相邻节点之间可靠传输数据帧
流量控制
差错检查
错误纠正
半双工和全双工:在半双工模式,链路的两个节点都可以发送数据,但是不能同时发送。
链路层在主机和网络 ...
计网期末复习之网络层
1、网络层提供的功能
(1)报文段封装和解封(数据报)
发送方主机、接收方主机、路由器
(2)转发(数据平面)
路由器根据路由表,将分组从路由器的输入端口转移到正确的路由器输出端口
(3)路由(控制平面)
确定分组从发送方传输到接收方(目的主机)所经过的路径(或路由)
(4)连接建立(ATM)
2、什么样的服务模型可以用于将数据报从发送方传输到接收方
(1)网络层可能提供的服务
确保交付、具有时延上界的确保交付、有序分组交付、确保最小带宽、确保最大时延抖动
(2)因特网的网络层提供的服务
单一服务,即尽力而为服务;分组间的定时不能被保证;
分组的接收顺序与发送顺序不一定相同;传送的分组不能保证最终交付
3、虚电路和数据报网络
任何网络中的网络层只提供两种服务之一,不会同时提供。
(1)虚电路网络
提供网络层的连接服务;面向连接服务在端系统及网络核心的路由器中实现;
(2)数据报网络
提供网络层的无连接服务;
路由器不需要维护端到端连接的状态,使用目的主机的地址进行分组转发;
对于给定的目的地址,使用最长地址前缀匹配来完成输出端口的查找;
一个端系统 ...
计网期末复习之传输层
1、传输层:两个进程之间的逻辑通信,网络层: 两个主机之间的逻辑通信
传输层协议运行在端系统
发送方: 将应用程序报文分成报文段传递给网络层,
接受方: 将报文段重新组装成报文传递到应用层
传输层可以为应用提供多种协议(因特网: TCP 和 UDP)
可靠按序递交 (TCP):拥塞控制/流量控制/连接建立
不可靠的无序传递: UDP“尽力传递” IP的直接扩展
两种服务均不保证: 延迟/带宽
2、多路复用/多路分解工作原理
在发送主机多路复用:从多个套接字收集数据, 用首部封装数据,然后将报文段传递到网络层(多路复用)
在接收主机多路分解:将接收到的数据段传递到正确的套接字(多路分解)
多路复用/分解如何工作?(报文段头部字段实现)
主机收到IP数据报
每个数据报有源IP地址,目的IP地址
每个数据报搬运一个报文段
每个报文段有源和目的端口号 (回忆: 对于特定应用程序具有周知端口号)
主机用IP地址和端口号指明报文段属于哪个合适的套接字
3、无连接多路分解( UDP 套接字:目的IP地址, 目的端口号) ...
计网期末复习之应用层
1、网络应用程序部署
(1)部署在端系统上(2)没有应用程序软件运行在网络核心设备上
2、网络应用程序体系结构
(1)C/S体系结构 Server:具有固定的、众所周知的IP地址;总是打开的主机;主机群集; Client:可以间断的同服务器连接;拥有动态IP地址;客户机相互之间不直接通信
(2)P2P体系结构 没有总是打开的服务器;任意一对主机直接相互通信;对等方间歇连接并且可以改变IP地址;自扩展性;难以管理
(3)C/S和P2P混合的体系结构 中心服务器记录对等方内容(用户注册、文件存储信息等),供用户搜索;
3、进程通信
(1)同一主机上运行的进程之间进程间通信机制进行通信,由操作系统提供。
(2)不同主机上运行的进程间交换报文进行通信。进程间通信利用socket发送/接收消息实现。
具有P2P体系结构的应用程序既有客户进程(发起通信的进程)和服务器进程(发起通信的进程)。
4、如何寻址进程?
(1)不同主机上的进程间通信,那么每个进程必须拥有标识符( IP地址、端口号)(2)常用网络程序的端口号:Web服务:80;邮件服务:25
5、常见应用的传输 ...
计网期末复习之计算机网络与因特网
计算机网络:两台以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。
计算机网络向用户提供的最重要的两大功能:连通性、共享。
什么是Internet?
具体构成描述:数以亿计的计算互连设备、通信链路(link)、分组(packet)交换。(硬件上描述)
服务上描述:提供网络应用基础架构、为分布式应用程序提供通信服务接口(无连接服务和面向连接服务)。
ISP是指互联网服务提供商。
协议定义了两个或多个通信实体间所交换报文的格式和顺序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)
协议的基本要素:
语法:报文格式
语义:各字段的含义
同步(时序):报文传输的先后顺序
Internet标准的几个阶段:
因特网草案(Internet Draft)-不是RFC文档
建议标准(Proposed Standard) -开始成为RFC文档
草案标准(Draft Standard)
因特网标准(Internet Standard)
因特网组成部分:边缘部分、核心部分
网络边缘:
端系统 ( ...
操作系统期末复习之经典大题
假定系统有3个并发进程get 、copy 和put共享缓冲器B1和B2。进程get负责从输入设备上读信息,每读出一条记录后放到B1中。
操作系统期末复习之shell编程
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
①Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。
②Shell是一个解释型的程序设计语言。
以下对linux进程管理的作用描述正确的有(ABC)
A.判断服务器的健康状态
B.查看系统中所有的进程
C.杀死进程
D.查看服务器CPU信息
简单命令
date:打印或设置系统日期和时间。
who:查看系统中所有已登录用户的情况。
passwd:修改用户密码。
logout, login:登录shell的登录和注销命令。
pwd:打印工作路径。
more, less, head,tail:显示或部分显示文件内容。
lp/lpstat/cancel, lpr/lpq/lprm:打印文件。
chmod u+x:更改文件权限。
rm -fr dir:删除非空目录。
cp -R dir:拷贝目录。
fg jobid:将一个后台进程放到前台。
使用Ctrl+z可以将前台进程挂起(suspend), ...
操作系统期末复习之处理机调度与死锁
处理机调度与死锁处理机是系统最重要的资源,提高处理机的利用率和改善系统性能,在很大程度上取决于处理机调度性能的好坏。
调度的层次1)高级调度(作业调度,长程调度)2)低级调度(进程调度,短程调度)3)中级调度(交换调度, 中程调度)
1、高级调度▪调度对象:作业▪又称作业调度、长程调度、接纳调度▪实现:作业管理程序▪将外存作业调入内存,创建PCB等,插入就绪队列。▪用于批处理系统,分/实时系统一般直接入内存,无此环节。▪频度:最低,分钟级
2、低级调度▪又称进程调度或短程调度▪对象:就绪进程(或内核线程)▪功能:决定就绪队列中的哪个进程应获得处理机,并将处理机分配给选中的进程。▪实现者 :分派程序(dispatcher)▪应用范围:都有▪频度:最频繁,毫秒级
引起进程调度的因素可归结为这样几个:①正在执行的进程执行完毕,或因发生某事件而不能再继续执行;②执行中的进程因提出I/O请求而暂停执行;③在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语、 Wakeup原语等。
3.中级调度▪又称内存调度、中程调度▪对象:挂起的进程▪功能:把 ...
操作系统期末复习之进程管理
进程管理操作系统的进程管理是整个操作系统管理中的核心,它包含了进程的调度、协调以及进程通信。
进程和线程的概念 、比较 典型的进程定义有:(1)进程是程序的一次执行。(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。(3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是独立运行和独立调度的基本单位(CPU上真正运行的是线程)。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
对比:
线程只拥有少量在运行中必不可少的资源。进程占用资源多,线程占用资源少,使用灵活。线程不能脱离进程而存在,线程的层次关系,执行顺序并不明显,会增加程序的复杂度。没有通过代码显示创建线程的进程,可以看成是只有一个线程的进程。
进程是资源分配的基本单位,线程是程序执行的基本单位
进程拥有自己的资源空间,而线程与CPU资源分配无关,多个线程共享同一进程内的资源,使用相同的地址空间。
一个进程可以包含若干个线程。
前趋图
进程的 ...