网络编程理论部分
本文为理论部分,为后面的文章奠定基础。
url访问页面地址
* http:jd.com/index.html京东首页
* http + jd.com +(端口号) + index.html
*
* A---------------------------------------> URL(访问页面的地址:协议+资源主机域名+端口号+资源文件名)
* 域名----域名解析器返回对应地址IP
* 端口号没给,http默认为 监听80端口
* https(加密)默认为 443
根据 域名解析器 通过访问目标url得到访问目标的 ip 地址
ip地址(某点)
* IP地址
* IPV4
* 广域网 A类
* 192.168.0.0-192.168.255.255局域网地址 C类
* 127.0.0.1本机地址
*
* IPV6如3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
通信模型(点与点之间的线)
理论OSI模型 及对应的 应用TCP/IP模型
* A(IP地址) B(IP地址)----端口号
* | OSI参考模型-----TCP/IP模型(实际使用) 数据封装 :协议头----协议数据单元----协议尾 |
* | 应用层--------------应用层(操作系统) 数据 |
* | 表示层 |
* | 会话层 |
* | 传输层--------------传输层TCP、UDP 段Segment:TCP--数据--TCP |
* | 网络层--------------网络层IP 包Packet:IP----段(TCP-数据-TCP-)----IP |
* | 数据链路层-----------物理+数据链路层 帧Frame:MAC----包----帧 |
* | 物理层 比特流 |
* | 注意:TCP/IP协议是整个协议族 |
* ----------------------------------------------------------------------------------
传输层的TCP协议与UDP协议
TCP、UDP:如何发送(可靠打电话呢还是发短信);IP:发送给谁(具体号码
* TCP可靠三次握手(Synchronized,Acknowledge)
* 1、客户请求连接------------------------------------------------------------->(SYN报文)
* 2、<-----------------------------------------------------------服务确认(SYN+ACK报文)
* 3、客户确认------------------------------------------------------------------->(ACK报文)
端口
基于TCP协议:套接字socket通信
* 确定端口:
* socket套接字:传输层提供给应用层的编程接口
* 单个套接字是一个通信端点-->,一对套接字构成一个双向通信信道(Socket--ServerSocket)
* * 端口是虚拟的概念,一个端口只能给一个应用
* socket通信是基于TCP协议
- TCP是面向连接的,传输数据安全,稳定,效率相对较低
- UDP是面向无连接的
下一节将介绍查看url信息两个类
* InetAddress//封装计算机的DNS和IP地址(没有端口信息)
* InetSocketAddress// IP地址 和 端口