学习笔记之JavaSE(49)--网络编程1

今天学习的内容是网络参考模型、IP地址与端口号和传输协议


一、网络参考模型

如果想要完成客户端与服务器之间的数据交互,就要用到网络通信。 为了解决不同结构的网络的互联问题,国际标准化组织ISO制定了OSI网络参考模型,将复杂的网络通信问题化为若干个容易处理的小问题。而TCP/IP网络参考模型除了层的划分更加简单,基本内容是与OSI模型相同的。实际上,OSI模型和TCP/IP模型都是在描述网络通信的过程:客户端发送的数据从顶层到底层经过层层“打包”之后传输给服务器,服务器再将数据从底层到顶层进行层层“拆包”最终获取数据。OSI模型和TCP/IP模型的图例如下:



目前通用的是TCP/IP四层模型(Internet使用的就是TCP/IP模型)。其中:

  • 网络接口层作为最底层,通常不用考虑
  • Java网络编程主要是结合多线程IO流网络层/传输层进行开发
  • 框架技术主要用于应用层开发(框架已经将多线程、IO流和网络层/传输层进行了封装

二、IP地址与端口号

想要进行客户端与服务器的交互,前提条件就是要先知道两项关于服务器的信息:它在哪里以及用哪个端口来收发数据,也就是IP地址端口号(它们属于网络层)。

在Internet网络上存在着数以亿计的计算机,每一台计算机都使用网络为其分配的Internet地址代表自己,这个地址就是IP地址,IP地址是唯一的!由于现在网络设备太多,造成IP地址资源紧张,于是就出现了外网IP内网IP。通常只为某个路由器分配一个外网IP,再为连接此路由器的所有设备分配一个动态的内网IP 。通过使用NAT(Network Address Translation,网络地址转换)技术可以转换内网IP和外网IP,从而可以节省IP资源。目前IP地址使用四个字节的十进制数来表示,称为IPv4。目前人们正在试验使用16个字节来表示IP地址,这就是IPv6。注:IP地址指明了节点被分配到的地址,MAC地址指的是网卡所属的固定地址,一般不会更改。

端口号则是用于标识进程的逻辑地址,一个指定的端口不能被多个进程共用!!如果没有端口号,服务器就无法分辨客户端要连接到哪个应用程序。一个IP地址有65536个端口可用(0~65535),其中0~1023已经被保留给特定的进程(比如HTTP的端口号是80)。顺便一提,防火墙的原理就是禁用某端口~

三、传输协议

传输层中常见的传输协议有TCP协议(Transmission Controll Protocol,传输控制协议)和UDP协议(User Datagram Protocol,用户数据报协议)。TCP协议和UDP协议的区别为:
  • TCP协议需要建立连接,是可靠协议;UDP协议将数据、源和目的地封装成数据报,不需要建立连接,是不可靠协议
  • TCP协议可以进行大量的数据传输;UDP协议的每个数据报大小必须在64k之内
  • TCP协议需要建立连接,速度较慢;UDP协议不需要建立连接,速度较快

比如QQ使用的就是UDP协议,对方不在线也可以发信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值