Java TCP/IP Socket (一) 简介

计算机网络,分组报文和协议

计算机网络由一组通过通信信道相互连接的机器组成。就是主机和路由器。

主机,就是运行应用程序的计算机, 主要就是运行的网络连接应用程序。

路由器,将信息从一个通信信道传递或转发到另一个信道。

通信信道,是将字节序从一个主机传输到另一个主机的一种手段。有线,无线等等

分组报文(packet),一组报文包括了网络用来完成工作的控制信息,有时还包括一些用户数据。首部包含了诸如目的地址和源地址等重要控制信息。

 

 

协议(protocol),指出了传输内容的含义。http, ftp等。 自己也可以定义。

 

关于地址

每一个互联网地址代表了一台主机与底层的通道信道的连接,也就是一个网络接口(network interface)

IPv4地址,被表示为一组4个十进制数,4个字节,0-255. 每个数字之间圆点隔开。

IPv6地址,16个字节由8组十六进制数组成。每一组两个字节。每组开头的0可以省略。只包含0的连续组可以全部省略。

2000:fdb8:0000:0000:0001:00ab:853c:36a1可以简写成2000:fdb8:::1:ab:853c:36a1

 

端口号,是一组16位的无符号二进制数,也就是(2^16)的值,所以每个端口的范围是1~65535(0被保留),http80端口,ftp21端口等等,都是被保留的

特殊地址:

  1. 回环地址(loopback interface),它的功能只是简单地将发送给它的报文直接回发给发送者。IPv4是127.*.*.*,比如127.0.0.1, IPv6是0:0:0:0:0:0:0:1
  2.  私有用途地址,不属于公共网络的一部分,也就是局域网地址系列。他们包括IPv4所有以10或192.168开头的地址。以及第一个数是172,第二个数在16~31的地址。IPv6没有保留地址,可能是IPv4足够应对局域网的地址数量了。
  3.  网络地址转换器(Network Address Translation, 简称NAT),它的功能就是把局域网地址转换成公网地址。private address:port pairs ----> public address, port pairs
  4. 本地链接地址,只能用来在连接到同一网络的主机之间进行通信, 路由器不会转发这类地址信息。 IPv4以169.254开头。在IPv6中, 前16位由FE8开头的地址是本地链接地址。
  5. 多播地址,可以与任意数量的目的地址关联。IPv4中格式是,第一个数字在224~239之间。 IPv6中是,FF开始。

关于名字

  1. DNS域名解析服务器, 是一个分布式数据库,查询域名和实际地址的关系

什么是套接字

是一种抽象层,应用程序通过它来发送和接受数据。就像打开文件句柄一样的读写。

不同类型的socket与不同类型的底层协议族以及同一协议族的不同协议栈关联。 TCP/IP只是其中一种协议族。

TCP:作为流套接字端对端协议,底层使用IP协议, 提供一个可信赖的字节流服务。

UDP:作为数据报套接字, 底层同样使用IP协议,提供一个“尽力而为”(best-effort)的数据报服务,最长可以发送65500字节。

其他协议族也支持流套接字和数据报套接字。

一个TCP/IP套接字由一个互联网地址,一个端对端协议(TCP或者UDP协议)以及一个端口号唯一确定。所以服务端就是通过这一点来区分同一台主机发出来的不同socket连接。

这里再指出一点,客户端的端口号,虽然在代码里不需要指明,但是系统会分配。客户端的端口号就是出端口号,而服务端代码中指明的服务端的监听端口号就是入端口号。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值