- 14
- 0
- 约 9页
- 2016-11-30 发布于浙江
- 举报
燕山大学计算机网络程序设计报告
基础知识1.1原始套接字创建面向连接的TCP和创建面向无连接的UDP套接字,在接收和发送时只能操作数据部分,而不能对IP首部或TCP和UDP首部进行操作如果想要操作IP首部或传输层协议首部,就需要调用如下socket()函数创建网络层原始套接字。协议栈的原始套接字从实现上可以分为“链路层原始套接字”和“网络层原始套接字”两大类链路层原始套接字链路层原始套接字调用socket()函数创建。第一个参数指定协议族类型为PF_PACKET,第二个参数type可以设置为SOCK_RAW或SOCK_DGRAM,第三个参数是协议类型(该参数只对报文接收有意义)。socket(PF_PACKET, type, htons(protocol))?参数type设置为SOCK_RAW时,套接字接收和发送的数据都是从MAC首部开始的。在发送时需要由调用者从MAC首部开始构造和封装报文数据网络层原始套接字socktet(PF_INET, SOCK_RAW, protocol)//接收到的数据网络层原始套接字接收到的报文数据是从IP首部开始的,即接收到的数据包含了IP首部, TCP/UDP/ICMP等首部, 以及数据部分。//发送的数据网络层原始套接字发送的报文数据,在默认情况下是从IP首部之后开始的,即需要由调用者自行构造和封装TCP/UDP等协议首部这种套接字也提供了发送时从IP首部开始构造数据的功能,通
原创力文档

文档评论(0)