码迷,mamicode.com
首页 > 其他好文 > 详细

关于TCP/IP以及网络的一些小科普

时间:2014-10-07 11:53:13      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   使用   ar   java   数据   sp   div   

关于TCP/IP通讯我从以下四个点来进行介绍.
1.宏观上网络的分类,和具象的网络的模型。
2.互联网的发展。
3.端口和IP。
4.TCP/IP以及Socket通信。

第一点
1)关于网络的分类(宏观)
按照网络规模和范围可以简单划分为:
局域网(LAN)
都市网(MAN)
广域网(WAN)

按照网络拓扑结构可以划分为:
星型网络,总线网络,环线网络,树形网络,星型环线网络等。
但是其实关于网络的分类还有很多,比如按照数据交换方式可分为线路交换网络、报文交换网络和分组交换网络。嗯再比如有些网络的管理者对于网络的控制非常关心,所以还可以分成集中式网络、分散式网络和分布式网络这些等等。除此之外还有总线啊,点对点传输网络啊这些就不需要一一列举了。如果是初学网络IO这些也不需要这些,只需要对网络的分类有个大致的概念就可以了。
2)OSI七层网络模型(OpenSystems Interconnectionbubuko.com,布布扣楼主的英语实在是太渣了)(微观)
OSI网络模型现在来说是有点过时了,因为伟大的TCP/IP这些报文协议出现了,这个后面再说。先来介绍下OSI七层网络模型。

OSI七层网络模型从上至下分别是
7.应用层
6.表示层
5.会话层
4.传输层
3.网络层
2.数据链路层
1物理层
粗略的介绍下各层的作用(bubuko.com,布布扣这个楼楼也翻阅了资料,大二学的都还给老师了,罪过)
7.应用层:主要是一些终端的应用,相当于提供了用户接入网络的接口。
6.表示层:能完成一些特定的功能,比如数据加密就是在这一层完成的。
5.会话层:通过传输层建立数据传输的通路,注要作用是维持系统之间的会话链接。
4.传输层:七层模型中最重要的一层了,这一层数据的单位称为数据段。这一层定义了一些传输数据的协议(例如我们要学的TCP)和端口号。主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。
3.网络层:这一层会用到IP这类的协议,负责对子网间的数据包进行路由选择。
2.数据链路层:承上启下,完成网络层和物理层的沟通。
1.物理层:数据以比特流的形式传播。为上层协议提供了一个传输数据的物理媒体,诸如网线的接口类型、光纤的接口类型、各种传输介质等等。

第二点,互联网的发展
这一段就是开始说故事了,既然是说故事就不能保证非常的细致了。
大体上互联网的发展分成三段:
第一阶段从上个世纪60年代开始,当时处于冷战威胁下的美国为了保证自己的通信在遭受敌对国家(bubuko.com,布布扣苏联?!)的打击时不至于全部瘫痪,于是美国的高级研究计划局建设了阿帕网,也就是ARPANET,apra隶属于美国国防部,所以这个阿帕网的初期也是致力于军事的使用。成立之初也就连接了四台主机。
后来随着时间的退役,到了七十年代冷战疑云渐渐远去,阿帕网也发展到了几十台主机的规模。apra开始鼓励科研和教育部门进行网络通讯的研究,以改变阿帕网的联网通信问题。这也是第二阶段的开始。1974年,出现了连接分组网络的协议,其中就包括了TCP/IP——著名的网际互联协议IP和传输控制协议TCP。这些协议的出现使网络的互联成为可能。1986年,美国国家科学基金组织将分布在美国各地的5个为科研教育服务的超级计算 机中心互联形成NSFnet。网络的重心从军事转移到科研和教育。
在到1992年,(为什么我会对这个时间记得这么深刻bubuko.com,布布扣)IBM、MCI、MERIT三 家公司联合组建了ansnet。这也是第三阶段的开始,网络商业化运作的开始。后面就巴拉巴拉的不说了。以上就是互联网的发展历程。

三.端口和IP
我的理解是IP就好像你家的具体地址,网络上的计算机通过IP找到你家。端口就是你家的门,如果没有门,是个人都能来你家里大小便显然不是一件很人性化的是事,端口就起到了限制或者维持通信的作用。
1)IP分为五类A,B,C,D,E(当初考网络工程还是偷偷百度的路过bubuko.com,布布扣),4个八位二进制数构成。
A:
组成:由1字节的网络地址和3个字节主机地址组成
作用:可容纳1600万个主机(具体是16387064,百度的bubuko.com,布布扣)。
B:
组成:由2字节的网络地址和2个字节主机地址组成
作用:可容纳6万个主机(具体是64516)。
C:
组成:由3字节的网络地址和1个字节主机地址组成
作用:可容纳254个主机,适用于小规模的局域网络。
D:
组成:第一个字节以“1110”开始,第一个字节的数字范围为224~239。
作用:多点播送
eg:“0.0.0.0”地址对应于当前主机,“255.255.255.255”当前子网的广播地址。
E:以“11110”开始,即第一段数字范围为240~254.E类地址保留,仅作实验和开发用

2)端口
百度百科说端口分成虚拟端口和物理端口bubuko.com,布布扣原来以前电脑装机时候插来插去的那个不叫插口啊。
好了,我们在这说的是虚拟端口。
计算机与外界交流的出入口•端口是一种抽象的软件结构,包括一些数据结构和I/O缓冲区,端口号从0到65535,通常将端口分为三类
1.公认端口(WellKnownPorts),从0到1023,它们紧密绑定(Binding)一些服务
2.注册端口(RegsiteredPorts),从1024到49151.它们松散绑定一些服务。
3.动态/或私有端口(DynamicPorts),从49152到65535。理论上不应为服务分配这些端口。
常见的端口举例:
80端口分配给HTTP服务,135端口分配给RPC,还有耳熟能详的8088端口。
是不是带8的数字有神秘加成~

下面就是要说的重点了
学习过JAVA SE的应该都学过TCP和UDP。那什么是TCP/IP呢?
TCP/IP协议是Internet上不同系统之间互联的一组协议。它为分散和不同类型的硬件提供了一个通用的编程接口。TCP/IP协议使Internet尽可能成为一个分散的,无序的网络。


就我们前面说的七层网络模型,说过过时了,那是因为TCP/IP的出现,改写了模型,将七层变成了四层,应用层,表示层,会话层统一成了一个应用层,数据链路层和物理层合并成一成(有的文章说还是五层,即数据链路层和物理层还是两层)。

第四点.Socket通信
JAVASocket编程


Java.net.ServerSocket和Java.net.Socket两个类用于建立一个双端通信。

ServerSocket等待来自客户端的连接,而Socket连接到一个服务器端。
有些同学可能对socket有些误解,以为只有客户端要用到socket,而服务端只用serversocket。其实这是错的,两端都需要有个socket才能进行通讯,而服务端的sercersocket用于来进行监听,得到socket用的。


1)ServerSocket类
•ServerSocket类用于监听一个客户端的Socket连接,它将一直等待。
•ServerSocket构造器 ServerSocket(intport):用指定的端口port来创建一个侦听Socket。
ServerSocket(intport,intbacklog):加上一个用于改变连接队列长度的参数backlog。
ServerSocket方法:
Socketaccept()
Close()


2)Socket类
•Socket类的构造器
Socket()
Socket(InetAddressaddress,int port)
Socket(String host,int port)
还有三种不常用的就暂且忽略
Socket方法:
getInputStream()
getOutputStream()
Close()

 

bubuko.com,布布扣

 

关于TCP/IP以及网络的一些小科普

标签:http   io   os   使用   ar   java   数据   sp   div   

原文地址:http://www.cnblogs.com/Matedo/p/4009097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!