网络编程笔记

网络体系结构

        网络体系结构研究的是计算机之间相互通信的层次,以及各层中的协议和层次之间接口的集合。

TCP:  (Transfer Control Protocol 传输控制协议)

    1. 是一种面向连接的传输层协议  (三次握手)

    2. 它能提供高可靠性通信(即数据无误,数据无丢失,数据无失序,数据无重复到达)

适用情况:

        适合于对传输质量要求较高,以及传输大量数据的通信.

        在需要可靠数据传输的场合,通常适用TCP协议

        MSN/QQ等即时通讯软件的用户登录账户管理相关的功能采用TCP协议

UDP: (User Datagram Protocol 用户数据报协议)

       UDP不保证可靠的无连接协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:

       发送小尺寸数据(如对DNS服务器进行IP地址查询时)

       在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)

       适合于广播/组播式通信中。

       MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

       流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

套接字(Socket)

一种独立于协议的网络编程接口,它是一个特殊的文件描述符(read,write,close)。

       所谓套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。

       1.流套接字(SOCK_STREAM)

       流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP协议

       2.数据报套接字(SOCK_DGRAM)

       数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。

       3.原始套接字(SOCK_RAW)

       原始套接字与标准套接字的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。

IP(Internet Protocol Address)

       是指互联网协议地址,是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,因此IP地址是主机的唯一标识。

1. A类地址: 1个字节网络地址+3个字节主机地址

A类地址最高为0 

              0000001   ~~~~~   0111110  地址范围是1.0.0.0~126.0.0.0

              0111111  127.0.0.1  回环地址

2. B类地址:2个字节网络地址+2个字节主机地址

B类地址最高为10

              10 000000   ------------- 128

              10 111111   ------------- 191

              128.0.0.0   ------ 191.255.255.255

3.C类地址:3字节网络地址+1个字节主机地址

C类地址最高为110

              110 00000  ------ 192

              110 11111  ------ 223

              192.0.0.0~223.255.255.255

4.D类地址用于组播

最高为1110

             1110 0000 ------ 224

             1110 1111 ------ 239

              224.XXX.XXX.XXX ----- 239.XXX.XXX.XXX

5.E类地址

       广播地址:  XXX.XXX.XXX.255该网段的广播地址  255.255.255.255全网广播

端口号

       端口类似于门牌号,客户端可以通过IP地址找到对应的服务器端,服务器端有很多端口,每个应用程序对应一个端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,称为端口号。

字节序

       字节序,即字节在电脑中存放时的序列与输入输出时的序列。

大端(Big endian)

       地址低位存储值的高位,地址高位存储值的低位

       例:0x01020304的存储方式

              BE   01 02 03 04

小端(Little endian)

       地址低位存储值的低位,地址高位存储值的高位

       例:0x01020304的存储方式

              LE    04 03 02 01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值