【java基础】18.网络知识1

来源:互联网 发布:淘宝卖飞机 编辑:程序博客网 时间:2024/06/05 20:58
网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的
 
 
网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器始终运行,监听网络端口,一旦有客户请求,就会启动一个服务线程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务
 
协议:=语义+语法+规则
 
 
•网络体系结构就是使这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂,它营造了一种“生存空间”
•网络体系结构解决异质性问题采用的是分层方法 —— 把复杂的网络互联问题划分为若干个较小的、单一的问题,在不同层上予以解决。
•就像我们在编程时把问题分解为很多小的模块来解决一样。
 
ISO的七层参考模型OSI:
   应用层(处理网络应用)(远程登录协议Telnet、文件传输协议FTP、 超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等),
   表示层(数据表示),
   会话层(主机间通信),
   传输层(端到端的连接)(传输控制协议TCP、用户数据报协议UDP。),
   网络层(寻址和最短路径)(网际协议IP),
   数据链路层(介质访问(接入)),
   物理层(二进制传输)。
•通信实体的对等层之间不允许直接通信。
•各层之间是严格单向依赖。
•上层使用下层提供的服务
•下层向上层提供服务
•对等层实体之间虚拟通信。
•下层向上层提供服务,实际通信在最底层完成

TCP:面向连接的可靠的传输协议。
UDP:是无连接的,不可靠的传输协议。
•下面我们对这两种协议做简单比较
–使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。
–对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间
–使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。
–TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大量的数据。
–UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。
–TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据
 
•既然有了保证可靠传输的TCP协议,为什么还要非可靠传输的UDP协议呢?
–一是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高
–二是在许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些
 
TCP/IP模型
–应用层
–传输层
–网络层
–网络接口
 
 
 
 
 
 
 
原创粉丝点击