· TCP/IP层次模型共分为四层:应用层、传输层、网络层、数据链路层。
应用层:应用程序间沟通的层,万维网(WWW)访问用到了HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、远程登录用Telnet协议等等,都是属于TCP/IP应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。
传输层:数据端对端传输,A主机端口8888到B主机端口8080.在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
网络互连层:将数据从1个主机传到另1个主机。
负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。是物理接口的规划。比特流的传输。数据封装成帧。
传输层:只负责2个端口之间的传输不负责主机之间。而主机之间的传输是通过网络层,将应用层封装的报文数据从本机端口可靠地传送到对面主机的端口
-端口:主机上不同应用程序都有自己的端口
-传输协议:是在两个设备之间传输数据的标准化格式,使用的协议类型可以确定错误检查方法、数据比较方法和文件结束确认之类的变量
-传输协议Tcp和udp:
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快(as3不支持udp)
-建立一个TCP连接时需要3次握手:客户端向服务器端请求进行连接,这是第一次握手,接收端收到请求并且允许连接的话就像客户端发送2次握手,客户端收到确认连接后向服务器发送3次握手
实例:主机A 的8080端口程序发送数据到主机B的8888端口程序
理解流程:主机A把要传输的数据封装成tcp/udp报文格式,通过主机A的8080端口发送到主机b的8888端口,解析报文给主机B的程序用。
传输层只负责2个端口之间的传输不负责主机之间。而主机之间的传输是通过网络层
-报文:是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。(可分为自由报文和数字报文)
-Tcp报文格式:。如果传输层是tcp协议的话,A端应用层就要把传输数据封装成Tcp报文格式,在tcp中传输到B端应用层解析。
Socket:
Socket和tcp协议:
Socket是操作传输的实例,TCP协议来保证信息正确到达目的地,发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信
在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程
主要包括三个类:InetAddress, Socket, 和 ServerSocket