-
网络分层模型
- TCP/IP四层模型包括
- 应用层 程序员关心的一层,制定具体规则的协议比如HTTP,FTP,SMTP,NFS
- 传输层(TCP,UDP) 关注传输控制协议TCP,用户数据报协议UDP
- 网际层(IP) IPv4,IPv6 数据按包在网络上传输,称为数据报。作为程序员不必太操心
- 主机网络层 也称链路层,作为程序员不必关系这一层,除非出现网络故障需要排查基本的网络情况
- TCP/IP四层模型包括
-
端口 如果每台计算机一次只做一件事情,那地址就足够了,但是计算机同时要做很多事情,比如SMTP和FTP分开,和HTTP分开,这就是通过端口实现的,表示的是内存的抽象(与实际的USB端口不同),每个端口分配特定的服务。
-
子网和NAT地址转化 子网根据子网掩码可以为主机地址进行再划分成相同的网络段,更有效的进行主机地址使用,同时结合NAT将内部ip映射到外网ip极大的解决了公网ip的紧缺性。
-
URI和URL
- URL(统一资源定位)是URI(统一资源标识)的一种,URI标识资源(是什么),URL标识具体位置(在哪里)。URL包含访问协议ftp或http以及路径和端口。
- 相对URL 注意 / 的不同
//原URL http://www.baidu.com/java/helloworld.html
<a href="java.html">
//拼接末尾最后的信息
//http://www.baidu.com/java/java.html
<a href="/java.html">
//从根地址拼接最后的信息
//http://www.baidu.com/java.html
-
URLConnection 是一个抽象类,为交互提供了更多控制。通过URL的 openConnection进行获得 URLConnection
-
Socket 允许程序员将网络连接看作是另外一个可以读/写的字节流,掩盖了网络的底层细节如错误检测/包大小/包分解/包重传/网络地址等。
- http/ftp/等协议是建立在socket之上,数据传输后是否关闭连接取决于协议类型。
- 一般有七个动作:连接远程机器/发送数据/接收数据/关闭连接/绑定端口/监听入站数据/在绑定端口上接受来自远程机器的连接,后三个是serverSocket类的实现。
- 建立连接后,本地和远程主机就从这个socket得到输入和输出流,使得这两个流相互发送数据。连接是全双工的也就是两台主机可以同时发送和接收数据。