1.应用程序之间的传输(网络通讯三要素:IP,端口,协议)
1)找到IP
2)数据要发送到指定的应用程序上。为了标识这些程序,比如,QQ发到QQ,而不是发到MSN。为了标识这些应用程序,所以给这些网络应用程序用数字进行标识,这个数字叫做“端口”。逻辑端口。web服务是80,tomcat默认是8080,mysql:3306。端口号都可以改。
3)定义通讯规则。这个通讯规则称为协议,国际组织定义了通讯协议TCP/IP。
比如玩CS游戏,自己用特有的协议,不用TCP/IP,则别人不能和我们联机,只有用相同协议的人才能联机。有些特殊的组织,为了安全起见,使用特定的协议进行内部通讯。
(程序之间之所以能通讯,就是因为遵循同一个通讯协议。好比中国人之间能交流,就是因为大家都说中文。)
2.网络模型
1)左边是“OSI模型”,左边是“TCP/IP参考模型”
应用层 | 应用层 | |
表示层 | ||
会话层 | ||
传输层(TCP/UDP) | 传输层 | |
网络层(IP) | 网际层 | |
数据链路层 | 主机至网络层 | |
物理层 |
2)在这个OSI七层模型中,每一层都为其上一层提供服务、并为其上一层提供一个访问接口或界面。
比如QQ发送信息,由上往下,应用层到物理层,叫数据封包
2.1.应用层,对信息进行封装,http,ftp是应用层协议(data)
2.2.在表示层对应用层传来的信息进行封装((data))
2.3.在会话层也对传来的信息进行封装(((data)))
2.4.在传输层对信息进行封装,常见的有TCP协议或者UDP协议((((data))))
2.5.在网络层,封装上IP地址,也即确定数据要发送到哪里(IP)。(((((data)))))
2.6.数据链路层确定用什么底层传输协议发送出去((((((data))))))
2.7.物理层,比如网线,光纤,无线。把上面封装的数据发送到对方的物理层。对方进行数据拆包(即由物理层到应用层)
2.8.每一层进行拆包,并往上传。直到传到应用层,根据端口号,把数据发给相应的应用程序 网络编程在“传输层”(TCP/UDP)和“网际层”(IP)。JAVA Web在应用层(HTTP,FTP)