疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

IP地址和端口号—[疯狂java讲义]


 

        IP地址用于标志网络中的一个通信实体,这个通信实体可以是一台主机,也可以是一台打印机,或者是路由器的某一个端口,而在基于IP协议网络中传输的数据包,都必须使用护地址来进行标识。
 
        如同我们写一封信,要标明收信人的通信地址和发信人的地址,而邮政工作人员则通过该地址来决定邮件的去向。类似的过程也发生在计算机网络里,每个被传输的数据包也要包括一个源IP地址和一个目的IP地址,当该数据包在网络中进行传输时,这两个地址要保持不变,以确保网络设备总能根据确定的IP地址,将数据包从源通信实体送往指定的目的通信实体。
 
        IP地址是数字型的,IP地址是一个32位(32bit)整数,但通常为了更加便于记忆,通常也把它分成4个8位的二进制数组成,每8位之间用圆点隔开,每个8位整数可以转换成一个0~255的十进制整数,因此我们看到的IP地址常常是如下形式:202.9.128.88。
 
        NIC(Internet Network Information Center)统一负责全球Internet IP地址的规划、管理,而Inter NIC、APNIC、RIPE三大网络信息中心具体负责美国及其他地区的IP地址分配。其中APNIC负责亚太地区的IP管理,我国申请IP地址也要通过APNIC、APNIC的总部设在日本东京大学。
 
        IP地址被分成了A, B, C, D, E五类,每个类别的网络标识和主机标识各有规则。
 
1、A类:10.0.0.0~10.255.255,255
2、B类:172.16.0.0一172.31.255.255
3、C类:192.168.0.0一192.168.255.255
 
        IP地址可以唯一地确定网络上的一个通信实体,但一个通信实体可以有多个通信程序同时提供网络服务,此时还需要使用端口。
 
        端口是一个16位的整数,用于表示数据交给哪个通信程序处理。因此,端口就是应用程序与外界交流的出入口,它是一种抽象的软件结构,包括一些数据结构和I/O(基本输入/输出)缓冲区。
 
        不同的应用程序处理不同端口上的数据,同一台机器上不能有两个程序使用同一个端口,端口号可以从0到65535,通常将它分为三类:
 
1、公认端口(Well Known Ports):从。到1023,它们紧密绑定(日inding)一些服务。
2、注册端口(Registered Ports):从1024到49151。它们松散地绑定一些服务。
3、动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535,这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口。
 
        如果我们把IP地址理解为某个人所在地方的地址(包括街道和门牌号),但仅有地址还是找不到这个人,还需要知道他所在的房号才可以找到这个人。因此如果我们认为应用程序是人,而计算机网络充当类似邮递员的角色,当一个程序需要发送数据时,需要指定目的地的IP地址和端口,如果指定了正确的IP地址和端口号,计算机网络就可以将数据送给该IP地址和端口所对应的程序。(摘自[疯狂java讲义])