网络编程基础11111111

网络编程–套接字

IP地址

    IPV4:uint32_t--43亿左右--在网络上唯一标识一台主机
    IPV6:uchar ip[16]--因为不向前兼容IPV4因此没有推广起来
    DHCP:动态地址分配技术--动态分配ip地址(谁上网给谁分配IP地址)
    NAT:地址替换--实现多人使用同一地址上网

二进制数字不好记忆,使用2-》10 的进制转换来方便记忆
每条数据都会包含:src ip dest ip ----表示了这条数据的源地址和目的地址

port端口:uint16_t --0~65535
0~1024不推荐使用
按端口号可分为 3 大类
( 1 )公认端口(Well Known Ports ):从0 到1023 ,它们紧密绑定(binding )于一些服务。通常这些端口的通讯明确表示了某种服务的协议。例如:80 端口实际上总是HTTP 通讯。
( 2 )注册端口(注册端口):从1024 到49151 它们松散地绑定于一些服务也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的例如:。许多系统处理动态端口从1024 左右开始。
( 3 )动态和 / 或私有端口(动态和/或专用端口):从49152 到65535 。理论上,不应为服务分配这些端口实际上,机器通常从1024 起分配动态端口但也有例外。:SUN 的RPC 端口从32768 开始

网络程序分了客户端和服务端,主动发起请求的一方是客户端,被动在指定位置接受请求的一方是服务端(服务端被动的接收地址必须是固定不变的);

一个端口只能被一个进程占用:一个进程可以使用多个端口

每条数据中包含了:sip sport dip dport proto (五元组–标识一条通信)

 四元组:源IP地址、目的IP地址、源端口、目的端口
        五元组:源IP地址、目的IP地址、协议号、源端口、目的端口
           七元组:源IP地址、目的IP地址、协议号、源端口、目的端口,服务类型以及接口索引

网络字节序:
字节序:字节序是指多字节数据的存储顺序,在设计计算机系统的时候,有两种处理内存中数据的方法:大端格式、小端格式。

小端格式(Little-Endian):将低位字节数据存储在低地址。
大端格式(Big-Endian):将高位字节数据存储在低地址。

主机字节序:当前计算机的字节序–大小端取决于cpu架构
如果通信两端主机字节序不同,就会造成数据二义(针对存储大于一个字节数据)
解决方案:订立标准–网络字节序(通信双方都使用网络字节序)-大端字节序
字节序的判断:

在数组中 a[0]-----------------a[9]
--------------低-------------------高
针对一个int类型 —0x12345678
-------------------------高-----------低

include<stdio.h>
typedef union student{
        int i;
        unsigned char ch[4];
}stu;
int main(){
        stu a={0};
        a.i=0x12345678;
        printf("%x\t%x\t%x\t%x\t\n",a.ch[0],a.ch[1],a.ch[2],a.ch[3]);
return 0;
}

传输层协议:TCP/UDP 比较

TCP:传输控制协议–面向连接,可靠传输,面向字节流服务
UDP:用户数据报协议–无连接,不可靠,面向数据报

哪个更好呢?------------视情况而定

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值