Socket网络编程学习笔记 网络编程Socket与TCP/UDP
Posted 鮀城小帅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket网络编程学习笔记 网络编程Socket与TCP/UDP相关的知识,希望对你有一定的参考价值。
1.网络编程
(1)什么是网络?计算机网络的构成是什么?
网络,在计算机领域中,网络是信息传输、接收、共享的虚拟平台。它把各个点、面、体的信息联系到一起,从而实现资源的共享。
局域网,指在某一个区域内由多台计算机互联成的计算机组。
互联网,指的是网络(可以是局域网)与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
(2)什么是网络编程?
网络编程,从大的方面说就是对信息的发送到接收。通过操作相应API调度计算机硬件资源,并利用传输管道(网线)进行数据交换的过程。
(3)7层网络模型-OSI
①基础层: 物理层(Physical)、数据链路层(Datalink)、网络层(Network)
②传输层(Transport):TCP-UDP协议层、Socket
③高级层:会话层(Session)、表示层(Presentation)、应用层(Application)
(4)网络模型-对应关系
2.Socket与TCP\\UDP
(1)Socket
Socket,是IP地址与端口的结合协议(RFC 793)。是一种地址与端口的结合描述协议。是 TCP/IP协议的相关API的总称,是网络API的集合实现。它涵盖了Stream Socket/Datagram Socket。
它的作用,在网络传输中用于唯一标示两个端点之间的链接。端点,包括 IP + Port
Socket有4个要素:客户端地址、客户端端口、服务器地址、服务器端口。
(2)Socket传输原理
Socket的客户端与服务端通过IP + Port 25 进行传输数据,从而实现通信。
(3)TCP
TCP,是面向连接的通信协议。通过三次握手建立连接,通讯完成时要拆除连接。由于TCP是面向连接的,所以只能用于端到端的通讯。
图解:
TCP的传输协议,一个数据传输到服务器上,首先是基于TCP的数据发送,同时它会收到一条TCP的回复,代表着数据收到了。这个回复是由TCP在数据层面封装实现的。
TCP的传输方式,最终结果要么成功,要么失败。
(4)UDP
UDP,是面向无连接的通讯。UDP数据包括目的端口号和源端口号信息。由于通讯不需要连接,所以可以实现广播发送,并不局限于端到端。
图解:
UDP的传输协议,一个数据传输到服务器上,不等待回复就直接结束。它的传输方式,不会在意最终结果,只要发送出去即可。
(5)Client-Server Application
CS,TCP/IP 协议中,两个进程间通信的主要模式为:CS模型。
它的主要目的,协同网络中的计算机资源、服务模式、进程间数据共享。
常见的CS模型有:FTP、SMTP、HTTP。
以上是关于Socket网络编程学习笔记 网络编程Socket与TCP/UDP的主要内容,如果未能解决你的问题,请参考以下文章
python 3.x 学习笔记13 (网络编程socket)