1. TCP服务端编程/客户端编程 熟练
1)引入模块 socket
2)定义连接信息(ip和端口号)
3)创建tcp套接字
4)连接指定主机
5)接收/发送 信息
6)向服务器 发送/接收 信息
2. TCP协议的处理方式[传输控制协议,特点,特性,使用场景]
TCP:传输控制协议,面向连接的的协议,稳定可靠。
当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,
之后才能传输数据。
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输
特点:TCP协议需要三次握手通信成功后进行建立连接.
- 安全性,可靠性高;确保成功的连接,商用的协议发包连接通信;
- 面向连接的,可靠,可控制;
- 面向连接的协议在任何数据传输前就建立好了点到点的连接。
场景:互联网和企业网上的客户端应用、数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。
UDP协议是直接发送,不会判断是否接收和发送成功.
- 局域网速度比较快;
- 网络阻塞(sai)时,会不稳定;
场景: QQ使用的是UDP协议聊天,因为用户不需要等待就会接收。
- 当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。
- 在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。
缺点:服务端socket.accept()之后会阻塞,一直等待接收数据和连接,一旦建立连接和有数据之后再进行向下getInputStream()读取数据处理。
3.网络、IP,端口、协议、OSI/RM模型,总结梳理文档
3.1 网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,
通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
关于计算机网络的最简单定义是:一些相互连接的、以共享资源为目的的、自治的计算机的集合。
3.2 Ip:所谓IP地址就是给每个连接在互联网上的主机分配的一个32位地址。
有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。
端口:在IP里面,有很多个(端口,称呼窗口更合适),把计算机比作一个房子,房子的主人,银银,为了偷懒,每次外卖的时候,都不想下楼去拿,所以就告诉外卖人员,我在这个80窗口(80端口,80端口其实是网站的端口),放个绳子,叫外卖人员,把快餐系在上面。并且告诉外面,以后我的外卖就是这个窗口了(端口),以后外面你就系在这里给我就好了。
注释:在互联网上,端口号范围从0到65535,其中有些端口规定了,默认就是这个,虽然是可以修改的。(规定的端口,就像是银银告诉外卖人员,以后快餐就系80这个窗口,但是因为银银不只是在一家外卖店买外卖,也在其他店买,也告诉外卖人员快餐就系80窗口,就导致了一个默认。)
(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。
通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。
也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。
例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。
理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。
但也有例外:SUN的RPC端口从32768开始。
3.3 协议:网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
网络协议是由三个要素组成:
(1) 语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
(2) 语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。
(3) 时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。
人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。
3.4 OSI/RM模型:OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。
OSI将计算机网络体系结构(architecture)划分为以下七层:
物理层: 将数据转换为可通过物理介质传送的电子信号 相当于
邮局中的搬运工人
数据链路层: 决定访问网络介质的方式
在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人
网络层: 使用权数据路由经过大型网络 相当于邮局中的排序工人
传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员
会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书
表示层: 协商数据交换格式 相当公司中简报老板、替老板写信的助理
应用层: 用户的应用程序和网络之间的接口老板