* 客户服务器网络简介
** 1.1理解TCP基础
计算机上运行的应用程序,只需通过一条单一的Modem或DSL线路来连接互联网,所有程序共享这个连接,此共享对用户来说是透明的
Modem->数模转换
调制->用模拟信号来承载数字信号
DSL->用户数字线路(以电话线为传输介质的传输技术组合)
TCP实现共享:通过把要发送的数据流分解为很多小信息包在Internet上传输,到达接收端会重新组合
->Internet连接用很少的时间发送数据的每一个bit,其他程序的信息也可同时被传送
*** 1.1.1寻址
TCP通过*IP*来确定接受者
通过*端口*来确定与接受者上哪一个程序通信
*** 1.1.2可靠性
TCP为一个*可靠的*协议
防止数据传输过程中被损坏,每个信息都包含一个校验码,接收方比较校验码和收到信息的数据,若不对则丢弃
TCP要求接收方每收到一个信息包都反馈一下。若接收方没有反馈(产生超时),发送方会重新发送。
防止信息包重复或顺序错误,TCP会给每一个信息包包含一个序号。
*** 1.1.4安全
信息在Internet传输是通过共享网络传输,任何有权使用网络的人都可以看到他们。
使用SSL和TLS来解决这个问题
SSL->建立在TCP连接之上(提供认证,加密,数据完整性服务)
TLS->只包含在协议堆栈中
有关于SSl传输层安全的详细分析可以查看我的另外一篇博客:
https://blog.youkuaiyun.com/Marvin_Huoshan/article/details/83351626
** 1.2使用客户服务器模式
C/S模式下,服务器一直在侦听来自客户端的请求,有请求后,建立连接来处理它们
*** 1.2.2客户端端口号
客户端会由操作系统随机挑选一个端口号。服务器收到一个连接请求时,请求中会带有客户端的端口号。
** 1.3UDP
UDP只保证接收方收到的数据是完整的
不能保证数据是否真的能被收到,也不能保证数据是不是只被接受了一次,还不能保证收到的次序与发送的次序一致
UDP优点:无连接的概念,不会耗费时间去建立和关闭连接
在类似于DNS系统(客户端通常只需要发送一个简短的请求,收到一个同样简短的回复)、流式音频视频传输、游戏于网络文件系统(TCP会过于严格的处理被丢弃的信息包,带来很高的延迟),大量广泛的运用UDP。
Choose TCP
- 可靠的数据传输
- 协议需要不止一个请求与服务器的回答
- 发送较多数据
- 允许初始连接出现短暂延迟
Choose UDP
- 不关心数据传输是否可靠(尽最大努力交付)
- 协议只包含基本的请求和回答
- 需尽快建立网络会话
- 传送的数据很少<64K
** 1.4物理传输和以太网
TCP/IP可以在不同物理网络硬件之间传送数据
以太网可以向本地网络所有的工作站广播信息包