Java网络编程:初识网络编程

 




什么是计算机网络

  • 两台或更多的计算机组成的网络
  • 同一网络内的任意两台计算机可以直接通信
  • 所有计算机必须遵循同一种网络协议



什么是互联网

  • 互联网是网络的网络
  • 互联网采取TCP/IP协议
  • 其中最重要的两个协议是TCP协议和IP协议



IP地址和网关

  • IP地址用于唯一标识一个网络接口

    • IPv4采用32位地址
      IPv4地址实际是一个二进制32位的整数,为了便于识别,用十六进制表示后可以分为4组数字,每组数字转换成十进制后用“.”隔开就是我们见到的IP地址:
      enter description here
    • IPv6采用128位地址
  • 公网IP地址可以直接被访问

  • 内网IP地址只能在内网访问

  • 本机地址使用127.0.0.1

  • 通常路由器或交换机有两个网卡(两个IP地址),分别连接两个不同的网络:
    enter description here

  • 同一网络下的计算机可以直接通信,他们的网络号相同,网络号由IP地址和子掩码按组对齐做与运算得到:
    enter description here

  • 不同网络下的计算机需要通过路由器或交换机网络设备间接通信,这样的网络设备叫做网关:
    enter description here

  • 网关的作用是连接多个网络,负责把一个网络的数据包发送到另一个网络,过程叫做路由:
    enter description here

  • 一台计算机的网络拥有IP地址,子网掩码和网关(路由器)三个关键配置:
    enter description here




域名

由于IP地址不便于记忆,通常使用域名来访问特定的服务,域名解析服务器DNS负责将域名翻译成对应的IP地址,客户端再根据IP地址访问服务器:
enter description here




TCP/IP协议

  • IP协议是一个分组交换协议,不保证可靠传输,一个数据包通过IP协议传输会自动分成若干小的数据包然后通过网络进行传输
  • TCP(Transmission Control Protocol)协议是一个传输控制协议,建立再IP协议之上,IP协议负责传输数据包,TCP协议负责控制传输数据包;TCP协议传输之前需要先建立连接,然后才能传输数据,传输完成后断开连接;TCP协议是一个可靠传输协议,他通过接受确认,超时重传实现;TCP协议支持双向通信,双方可以同时传输和接受数据



UDP协议

UDP(User Datagram Protocol)协议是数据报文协议,不面向连接,不保证可靠传输,由于UDP协议传输效率高,通常用来传输视频等能容忍丢失部分数据的文件。