网络编程之初探

网络编程之初探

网络编程,顾名思义,什么是网络呢?计算机网络是相互连接的独立自主的计算机的集合。

下面介绍下网络的基本知识:
 
ISO/OSI七层参考模型

从上到下依次为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
物理层:提供二进制传输,确定在通信信道上如何传输比特流。
数据链路层:提供介质访问,加强物理层的传输功能,建立一条无差错的传输线路。
网络层:提供IP寻址和路由,找出最佳的传输线路。
传输层:为源端主机到目的端主机提供可靠地数据传输服务,隔离网络的上下层协议,使得网络应用与下层协议无关。
会话层:在两个相互通信的应用进程之间建立、组织和协调相互之间的通信。
表示层:处理被传输数据的表示问题以及信息的语法、语义。
应用层:为用户的应用程序提供网络通信的服务。

注意:通信实体的对等层之间不能直接通信、各层之间是严格单向依赖、上层使用下层提供的服务、下层给上层提供服务。

各层使用的协议

应用层:远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。
传输层:传输控制协议TCP、用户数据报协议UDP。
网络层: IP网际协议、ICMP Internet互联网控制报文协议、IGMP Internet组管理协议。

数据封装

一台计算机要发送数据到另外一台计算机,数据首先必须要打包,打包的过程称为封装。封装就是在数据前面加上特定的协议头部。

TCP/IP网络模型

TCP/IP网络模型包含四个层次分别为应用层、传输层、网络层、网络接口层。此时的应用层对应ISO/OSI参考模型的应用层,表示层、会话层、网络接口层对应ISO/OSI参考模型的数据链路层和物理层、其他两层和ISO/OSI参考模型一一对应。

端口

传输层提供进程(应用程序)通信的能力,为了标识通信实体中进行通信的进程(应用程序),TCP/IP协议提出了协议端口。端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。
端口用一个整数型标识符表示,即端口号。端口号和协议相关。端口号用16位的整型数表示,范围为0~65535。1024以下的端口号保留给预定义的服务。比如http使用的端口号为80。

套接字(Socket)

套接字存在于通信区域中。通信区域也称之为地址族,它是一个抽象的概念,主要用于将通过套接字通信的进程的共有特性结合在一起。套接字通常只与同一区域的套接字交换数据(也有可能跨区域通信,但这只在执行了某种转换进程后才能实现)。windows sockets只支持一个通信区域,即网际域(AF_INET),这个域被使用网际协议簇通信的进程使用。

套接字的类型包含:SOCK_STREAM(流式套接字)-提供面向连接,可靠的数据传输服务,数据无差错,无重复的发送且按发送顺序接收。SOCK_DGRAM(数据报式套接字)-提供无连接服务。数据包以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。SOCK_RAW(原始套接字)
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值