首页 > 代码库 > 关于TCP/IP以及网络的一些小科普

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

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

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

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

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

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

三.端口和IP
我的理解是IP就好像你家的具体地址,网络上的计算机通过IP找到你家。端口就是你家的门,如果没有门,是个人都能来你家里大小便显然不是一件很人性化的是事,端口就起到了限制或者维持通信的作用。
1)IP分为五类A,B,C,D,E(当初考网络工程还是偷偷百度的路过),4个八位二进制数构成。
A:
组成:由1字节的网络地址和3个字节主机地址组成
作用:可容纳1600万个主机(具体是16387064,百度的)。
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)端口
百度百科说端口分成虚拟端口和物理端口原来以前电脑装机时候插来插去的那个不叫插口啊。
好了,我们在这说的是虚拟端口。
计算机与外界交流的出入口•端口是一种抽象的软件结构,包括一些数据结构和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()

 

 

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