网络基础(二)

Socket简介

Socket是一个独立于具体协议的网络编程接口,它是一种特殊的文件描述符,代表着网络编程的一种资源。


Socket类型

流式套接字(SOCK_STREAM)对应TCP:提供了一个面向连接、可靠的数据传输服务。数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

数据报套接字(SOCK_DGRAM)对应UDP:提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

原始套接字(SOCK_RAM)对应多个协议,发送穿透了传输层:可以对较低层协议如IP、ICMP直接访问。


Socket位置


IP地址

IP地址是Internet中主机的标识,Internet中的主机要与其他的机器通信必须具有一个IP地址。IP地址分为32位(IPV4)或者128位(IPV6)。每个数据包都必须携带目的的IP地址和源IP地址,路由器依靠此信息为数据包选择路由。

IP地址常用点分形式,如192.168.0.1,最后都会转换为一个32位的无符号整数。

局域网IP:192.xxx.xxx.xxx        10.xxx.xxx.xxx

广播IP:xxx.xxx.xxx.255        255.255.255.255(全网广播)

组播IP:224.xxx.xxx.xxx ~ 239.xxx.xxx.xxx


端口号

为了区分一台主机接收到的数据包应该转交给哪个任务来进行处理,使用端口号来区别(1 ~ 65535)。

TCP端口号与UDP端口号是相互独立的。

众所周知的端口:1 ~ 1023(FTP:21,SSH:22,HTTP:80)。

保留端口:1024 ~ 5000(不建议使用)。

可以使用的端口:5001 ~ 65535。

网络里面的通信是由 IP地址 + 端口号 来决定的。


字节序

不同类型CPU的主机中,内存存储多字节数据有两种方法,称为主机字节序(HBO)

小端序:低序字节存储在低地址,X86/ARM。

大端序:高序字节存储在低地址,powerpc/mips。

网络中传输的数据必须按网络字节序(NBO),即大端字节序。

在大部分PC机上,当应用进程将整数送入Socket前,需要转化成网络字节序,当进程从Socket取出整数后,要转化成小端字节序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值