网络编程

前言

 网络模型:物理层、数据链路层、网络层、传输层(TCP/UDP)、应用层、会话层、表示层,后面三层常见的协议有http、ftp、smatp等,根据具体实现来决定协议;

 网络协议:服务商和浏览器厂商之间约定的解析方式;

 IPV4地址:4组数字表示一个IP地址,一共有32位,范围为0~255,共有2^32次方个地址,IPV4的IP一般都是动态IP,会被运营商回收,127.0.0.1永远指向本机;

 域名:一级域名:.com .cn  .edu等,标识性质;二级域名:huawei.com、baidu.com,标识公司;三级域名:news.baidu.co,标识应用;

 DNS:用于域名和IP的解析;

 端口:PC和外界进行信息交互的媒介,端口号:0~65535,但是0~1024部分端口被PC内部占用,因此application占用端口要从1025开始;

 SocketAddress

  在Java程序中,通过SocketAddress指定ip地址和端口号,用其子类:InetSocketAddress;其中127.0.0.1代表本地地址,该IP在DNS绑定

 UDP

 1. UDP(User Datagram Protocol),用户数据协议,实际上是基于前面三层,进行数据传输的流;

 2. UDP协议不建立连接,不校验数据是否到达目的地,不存在发送失败的可能

 3. UDP协议不可靠,因为不建立连接,可能会产生数据的丢失;

 4. 在传输数据之前,要对数据封包,每一个包不超过64K

 5. 传输速度快,因为不建立连接,发送完客户端就关闭;适用于视频和直播等;

 TCP(BIO)

 1. 基于网络传输的流;

 2. 需要建立连接,经历三次握手

 3. TCP连接可靠,保证数据不会丢失

 4. 不封包,不限制数据大小

 5. 发送传输速度相对慢,适用于可靠性高,速度依赖性不高,例如上传/下载文件

原文地址:https://www.cnblogs.com/oxygenG/p/12637331.html