网络程序的实现有多种方法,Windows Socket是一种比较简单的方法。
Socket是连接应用程序与网络驱动程序的桥梁。
Socket在应用程序中创建,通过绑定操作与驱动程序建立关系。计算机网络是相互连接的独立自主的计算机的集合。为了标识在计算机上运行的每一个网络通信程序,为他们分别分配对应端口号。
IP地址:
- IP网络中每台主机都必须有一个唯一的IP地址
- IP地址是逻辑地址
- 因特网上的IP地址具有全球唯一性
ISO国际标准化组织提出了OSI七层参考模型:
应用层-----处理网络应用
表示层-----数据表示
会话层-----主机之间通信
传输层-----端到端的连接
网络层-----寻址和最短路径
数据链路层-----介质访问(接入)
物理层-----二进制传输对等层之间的通信的实质就是:
对等层实体之间虚拟通信。
下层向上层提供服务,实际通信在最底层完成。应用层:
文件传输协议FTP
超文本传输协议FTTP
域名服务DNS
发送电子邮件时,使用SMTP协议(简单邮件传输协议)
接收电子邮件时,使用POP3协议(邮局协议)
等传输层:
传输控制协议TCP
用户数据报协议UDP网络层:
网际协议IP
Internet互联网控制报文协议ICMP
Internet组管理协议IGMPTCP/IP模型
应用层
传输层
网络层
网络接口层传输层的两个协议TCP和UDP是完全独立的两个模块,因此各自的端口号也相互独立。也就是说,基于TCP和UDP协议的不同的网络应用程序,他们可以拥有相同的端口号。端口号使用一个16位的数字来表示,范围是0-65535
1024以下的端口号保留给预定义的服务。
http使用80端口。TCP/IP协议使用16位整数和32位整数的高位先存格式
80端口和8080端口
HTTP的默认端口是80
8080一般是用来连接代理的Windows Sockets的实现
Windows Sockets是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用。流式套接字(SOCK_STREAM)
基于TCP协议实现的数据报式套接字(SOCK_DGRAM)
基于UDP协议实现的原始套接字(SOCK_RAW)
套接字表示了通信的端点。套接字相当于电话机,IP地址相当于总机号码,而端口号则相当于分机。
什么是协议栈、协议族和地址族
- 协议栈 Protocol Stack.
协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。使用最广泛的是英特网协议栈,由上到下的协议分别是:应用层(HTTP,TELNET,DNS,EMAIL等),运输层(TCP,UDP),网络层(IP),链路层(WI-FI,以太网,令牌环,FDDI等),物理层。 - TCP/IP也称"国际协议簇", 即不仅指 TCP/IP协议本身,而且包括与其有关的协议。 TCP为传输控制协议,IP为网际协议,是网络层最重要的协议。采用TCP/IP协议通过互联网传送信息可减少网络中的传输阻塞,方便大批量的数据在网上传输,从而提高网络的传输效率。 TCP/IP协议族中包括上百个互为关联的协议,其中有:Telnet(Remote Login):提供远程登录功能; FTP (FileTransfer Protocol):远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上; SMTP (Simple Messagetransfer Protocol):简单信息传输协议,主要用于传输电子邮件;NFS(Network File Server):网络文件服务器,可使多台计算机透明地访问彼此的目录 ; UDP ( User DatagramProtocol):用户数据包协议。
- IPv4 或者 IPv6 称为TCP/IP的地址族.