一、计算机通信设备
例题:
1、说明计算机设备中哪个不是用来网络通信的
A、并口
B、串口
C、键盘口
D、以太网口
答案C
解析: 并口有8条数据线,并有I、O通道
串行接口的芯片的通信线只有一条传送线
以太网口是新型高速通信接口,速度≈串行接口速度*1000
二、局域网和广域网
例题:
8、广域网和局域网的区别
答:广域网的范围大,通信距离远
局域网(LAN)的特点:
1、用带地址的帧来传递数据
2、不存在中间交换导致不用路由选择
广域网(WAN)的特点:
1、需要路由器、交换机、中继器等设备
2、传输距离远,但速度相对局域网会慢一点
三、计算机发展的时代变化以及UNICODE三种编码
1、 1946(计算机诞生)~1967(建立ASCII码) ASCII码含义是美国标准信息交换码
2、 ASCII(dos时代)~ISO8859(GB2312) ~ANSI(win95/win98时代)
3、 UTF-32~UTF-16~UTF-8 UNICODE时代
UTF-32 所有字符都是四个字节
UTF-16 大部分字符都以固定长度的字节 (2字节) 储存,但UTF-16却无法兼容于ASCII编码
UTF-8 是分为1、2、3三种字节。英文一个,汉字三个,兼容ASCII编码
例题:
10、未涉及的字符编码是
答:UTF-24 这个没有
11、ANSI编码中一个汉字占
答:2个字节 UTF-8是4个??
12、在零平面UTF-8编码中一个汉字占用的字节是
答:3个
13、在0平面UTF-16编码中一个汉字占用的字节是
答:2个 UTF-32是32位,4个字节
14、WORD可用来传输全世界的信息,因为用的UNICODE,那么UNICODE使用的编码是??
答: UTF-8
15、一般的UNICODE是指
UTFANSI 还是?
答:UTF-16
16、UTF-8的优点是? 1,2,3,三种字节 汉字3个 英文1个
A、0平面字符字节数同一?错
B、英文字符一个字节?对
C、汉字两个字节?错!
D、有利于快速检错?错!因为字节数变化复杂!不好检索
17、UNICODE的优点是 -------->根据这个题,知道UNICODE一般指的是UTF-16
A、0平面字符同一?对
B、汉字2字节?错!
C、有利于网页传输?错!英文是2个字节,不利于传输
四、HTTP与HTML
HTTP全称 HyperText Transfer Protocol 超文本传输语言
HTML全称 HyperText Markup Language 超文本标记语言
例题:
26、http:具体含义是
答:超文本传输协议
27、HTML的具体含义是
答:超文本标记语言
五、URL
URL 全称为统一资源定位符
www 环球信息网的缩写,又称万维网
USB 通信串行总线 Universal Serial Bus
例题:
28、通用资源定位地址缩写是?
A、URL?对
B、www
C、usb
六、网络七层协议
OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;
其中高层,即7、6、5、4层定义了应用程序的功能;
下面3层,即3、2、1层主要面向通过网络的端到端的数据流。
例题:
网络通讯理论讲通信协议分成7个层次,但通信的时候只考虑(传输层)(对话层)
传输层负责传送数据
对话协议负责正确理解
七、客户端与服务器的区别
服务器处于被动状态,而客户机处于主动状态。服务器等待客户的询问,等待应答。
这种通信的一个栗子,客户端发出请求,然后对方服务器响应,再把结果返回给我们。
八、TCP和UDP的区别
TCP:Transmission Control Protocol 传输控制协议
特点:面向连接,传输可靠,用于传输大量数据,速度稍慢
UDP:User Datagram Protocol 用户数据报协议
特点:面向非连接,传输不可靠,用于传输少量数据,速度快
九、论述网页传输CJK出现乱码的现象
CJK 是中文(Chinese)、日文(Japanese)、韩文(Korean)三国文字的缩写,CJK 是《GB2312-80》、《BIG5》等字符集的超集。
也就是包含这3国语言的字符集。包含这3个国家常见的汉字,一共有2万多个。
答:因为网页传输用的是UTF-8,所以会导致CJK出现乱码
十、winsock与套接字(第四章、P90)
socket:套接字是一种网络编程接口
API:应用程序接口
winsock中的套接字可以是阻塞,也可以是非阻塞。处于阻塞方式套接字的函数在其完成任务之间是不会返回的
例如Receive-Buf()函数
例题:
7、阻塞与非阻塞。为什么阻塞会引起“死机”又叫“屏幕冻结”
答:非阻塞,我不等你的消息;阻塞,服务器的消息不来,我就“死机”等待
十一、与串口相关的结构体
与串口相关的结构体包括DCB类结构体和COMMTIMEOUTS
DCB:Date Center Bridging,DCB技术是针对传统以太网的一种增强,为了实现以太网不丢包,这种增强型的以太网叫无损以太网,顾名思义就是保证以太网络不丢包
commtimeouts包括ReadFile、WriteFile、ReadFileEx、WriteFileEx.之前得用CreateFile创建句柄
注:详细看P125~P127
分享一个UNICODE的链接
重难点:UNICODE
链接:http://www.zhihu.com/question/24572900/answer/28284322
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UTF-16 并不是一个完美的选择,它存在几个方面的问题:
- UTF-16 能表示的字符数有 6 万多,看起来很多,但是实际上目前 Unicode 5.0 收录的字符已经达到 99024 个字符,早已超过 UTF-16 的存储范围;这直接导致 UTF-16 地位颇为尴尬——如果谁还在想着只要使用 UTF-16 就可以高枕无忧的话,恐怕要失望了
- UTF-16 存在大小端字节序问题,这个问题在进行信息交换时特别突出——如果字节序未协商好,将导致乱码;如果协商好,但是双方一个采用大端一个采用小端,则必然有一方要进行大小端转换,性能损失不可避免(大小端问题其实不像看起来那么简单,有时会涉及硬件、操作系统、上层软件多个层次,可能会进行多次转换)
- 另外,容错性低有时候也是一大问题——局部的字节错误,特别是丢失或增加可能导致所有后续字符全部错乱,错乱后要想恢复,可能很简单,也可能会非常困难。(这一点在日常生活里大家感觉似乎无关紧要,但是在很多特殊环境下却是巨大的缺陷)
反过来 UTF-8 也不完美,也存在一些问题:
- 文化上的不平衡——对于欧美地区一些以英语为母语的国家 UTF-8 简直是太棒了,因为它和 ASCII 一样,一个字符只占一个字节,没有任何额外的存储负担;但是对于中日韩等国家来说,UTF-8 实在是太冗余,一个字符竟然要占用 3 个字节,存储和传输的效率不但没有提升,反而下降了。所以欧美人民常常毫不犹豫的采用 UTF-8,而我们却老是要犹豫一会儿
- 变长字节表示带来的效率问题——大家对 UTF-8 疑虑重重的一个问题就是在于其因为是变长字节表示,因此无论是计算字符数,还是执行索引操作效率都不高。为了解决这个问题,常常会考虑把 UTF-8 先转换为 UTF-16 或者 UTF-32 后再操作,操作完毕后再转换回去。而这显然是一种性能负担。
当然,UTF-8 的优点也不能忘了:
- 字符空间足够大,未来 Unicode 新标准收录更多字符,UTF-8 也能妥妥的兼容,因此不会再出现 UTF-16 那样的尴尬
- 不存在大小端字节序问题,信息交换时非常便捷
- 容错性高,局部的字节错误(丢失、增加、改变)不会导致连锁性的错误,因为 UTF-8 的字符边界很容易检测出来,这是一个巨大的优点(正是为了实现这一点,咱们中日韩人民不得不忍受 3 字节 1 个字符的苦日子)
那么到底该如何选择呢?
因为无论是 UTF-8 和 UTF-16/32 都各有优缺点,因此 选择的时候应当立足于实际的应用场景。例如在我的习惯中,存储在磁盘上或进行网络交换时都会采用 UTF-8,而在程序内部进行处理时则转换为 UTF-16/32。对于大多数简单的程序来说,这样做既可以保证信息交换时容易实现相互兼容,同时在内部处理时会比较简单,性能也还算不错。(基本上只要你的程序不是 I/O 密集型的都可以这么干,当然这只是我粗浅的认识范围内的经验,很可能会被无情的反驳)
稍微再展开那么一点点……
在一些特殊的领域,字符编码的选择会成为一个很关键的问题。特别是一些高性能网络处理程序里更是如此。这时采用一些特殊的设计技巧,可以缓解性能和字符集选择之间的矛盾。例如对于内容检测/过滤系统,需要面对任何可能的字符编码,这时如果还采用把各种不同的编码都转换为同一种编码后再处理的方案,那么性能下降将会很显著。而如果采用多字符编码支持的有限状态机方案,则既能够无需转换编码,同时又能够以极高的性能进行处理。当然如何从规则列表生成有限状态机,如何使得有限状态机支持多编码,以及这将带来哪些限制,已经又成了另外的问题了。