java网络编程协议与基础1—基本网络概念
网络分层
1、java网络编程中采用的是internet的TCP/IP四层模型
主要包括
*应用层
*传输层
*网际层
*物理路径
各个层运行的协议
网际层:IP协议,也是java唯一理解的网络层协议
传输层:
- TCP:保证了数据包按照发送时的顺序进行传送以及对丢失和破坏的数据进行重传,但是开销 比较大
- UDP:它允许接受方监测被接受的包,但不保证传输的顺序,所以为不可靠协议
应用层:确定数据传输后的操作,例如将传输后的一长串数字转换为图像等,主要的协议有
- web的HTTP
- 用于邮件的SMYP,POP,IMAP
- 用于文件传输的FTP、FSP、TFTP
- 用于文件访问的NFS
注意:可以在IP上运行很多协议,例如ICMP—网际控制消息协议,但java不支持ICMP,java支持的协议只有TCP和UDP,以及建立在这两个协议之上的应用层协议。所有其他传输层、网际层、以及更底层的协议,如ICMP、IGMP、ARP、RARP、RSVP等协议在java中都只能通过连接到原生代码来实现
2、端口分配
协议 | 端口 | 协议 | 用途 |
---|---|---|---|
echo | 7 | TCP/UDP | echo是一个测试协议,通过回显一台机器的输入来验证两台机器是否连接 |
discard | 9 | TCP/UDP | discard是一种用处不大的协议,它将忽略服务器收到的所有数据 |
daytime | 13 | TCP/UDP | 提供服务器当前时间的ASCII显示 |
FTP数据 | 20 | TCP | FTP使用的两个已知端口,这个端口用来传输文件 |
FTP | 21 | TCP | 这个端口用来发送FTP命令,如put和get |
SSH | 22 | TCP | 用于加密的远程登录 |
Telent | 23 | TCP | 用于交互式远程命令会话 |
SMTP | 25 | TCP | 简单邮件传输协议,在机器间发送邮件 |
time | 37 | TCP/UDP | 时间服务器返回服务器从1990年1月1日子夜后过去的秒数,这是一个4字节有符号big-endian整数 |
whois | 43 | TCP | 用于Internet网络管理的简单目录 |
finger | 79 | TCP | 返回本地系统用户或多个用户的有关信息的服务 |
HTTP | 80 | TCP | 国际互联网的底层协议 |
POP3 | 110 | TCP | 协议可将累计的电子邮件从主机传输到偶然连接的客户端 |
NNTP | 119 | TCP | usenet消息访问协议 |
IMAP | 143 | TCP | 访问存储在服务器上的邮箱的协议 |
dict | 2628 | TCP | 提供单词定义的UTF-8编码字典服务 |
3、代理服务器和防火墙
防火墙一般工作于传输层和网际层
代理服务器通常工作于应用层,它可以实现本地缓存(local caching),它最大的缺点是无法应对所有协议,例如BitTorrent