目录
1.网络编程
计算机网络
指将地理位置不同的具有独立功能的多态计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络编程
就是用来实现网络互联的不同计算机上运行的程序间可以进行数据交换
网络通信要素
数据包
数据包分成多个数据块,主要就包含发送者和接收者的一个地址。任意一个主机,能够去发送具有任意原地址的这两个数据包。但这个数据包的长,就是进行这个长距离的传输,它还需要去经过许多。就是一个中继站,每一个中继站就是一台主机或者一个路由器,它们是基于这个路由信息的,就是把这个数据包向下一个中继站去进行传递,这是一个传递过程。如果在数据传递的路上,如果说这个路由器,遇到一个大数据流量的情况下,它可能在没有任何提示的情况下,会丢失一些数据包,我们就把它称之为丢包。
IP地址
端口号 传输协议
网络模型
两种模型协议对照表
相同点:
OSI这个参考模型和TCP/IP模型都采用了这种层次结构,另外一点,都能够去提供面向连接和无连接的这两种通信服务机制。它们的传输层是相似的,都是去负责用户真正的一个端对端的通信服务 TCP和UDP。
不同点:
1.OSI是七层,TCP/IP是四层,TCP/IP它的一个参考模型就是网络层这里,在网络接口层这里,它并不是一个真正意义上的定义,只是一些概念性的。那这个OSI它是进行一个具体的定义,非常详细,每一层定义都很清晰,甚至在数据链路层,它还有一个子层,这个一个层次,叫做介质访问层,就是专门去解决局域网,解决共享介质的问题。
2.OSI是在我们协议开发前去设计的,具有一个通性。然后TCP/IP是现有协议再去建立模型,它是不适应于这个非TCP/IP的。
3.OSI的抽象性比较高,且它分的很细致,非常的复杂,实现起来很困难。相反TCP/IP实现比较成功,我们一般用的较多。
2.常见协议
TCP
三次握手
思考:如何断开连接?
客户端发送一个FIN,服务器接收到后,返回一个ACK。之后就是服务器端再次去给它发送关闭用户连接的FIN,客服端发送一个ACK报文。
UDP
TCP与UDP的区别
HTTP
基于TCP/IP协议的应用层超文本传输协议,是用于从WWW服务器传输超文本到本地浏览的传输协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
https就是在http的基础上加了一个认证加密,SSL,去保证传输的安全性。现在基本都是https,这样安全性得到了一个保证。
3.Socket
概述
Socket简称“套接字”,是一种双向网络通信方式,用于描述IP地址和端口,是一个通信连的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。
Java中网络相关类
Java中的Socket编程
案例
服务器:
客户端:
利用UDP协议
发送端:
接收端: