TCPIP协议常见问题总结.doc

TCPIP协议常见问题总结.doc

ID:50530976

大小:40.02 KB

页数:3页

时间:2020-03-10

TCPIP协议常见问题总结.doc_第1页
TCPIP协议常见问题总结.doc_第2页
TCPIP协议常见问题总结.doc_第3页
资源描述:

《TCPIP协议常见问题总结.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、继上篇《TCP/IPFAQ1》,本篇涵盖了域和协议、IP编址、插口、原始IP、unix域方面的问题与解答。【Domain&Protocol】1.什么是域,它和协议有什么关系?域可以理解为一种容纳协议的空间,它的存在便于了协议的分类;域和协议是集合与元素的关系,一个域中的每个协议使用同类地址,并且每种地址只被一个域使用,一个域能由协议族或地址族常量唯一标识。2.TCP/IP中有哪些域及其协议?internet、iso、route、ccitt、imp、networksystems和unix,其中internet域含有ip,icm

2、p,igmp,tcp和udp五种协议,unix域用于ipc通信。3.哪些地方会用到域?一个网络层协议必须分用输入数据报,并交给相应的传输层协议,由于域包含了协议族,因此必须从对应的域中找到合适的协议去处理。例如IP对应的域为internet,这个域对应的协议族为inetsw,当收到IP数据报时,就从inetsw中找到对应的传输层协议去输入处理。【IPAddressing】1.IP地址有哪几类?分为5类,A、B和C类用于单播;D类用于多播;E类用于实验。2.sockaddr和sockaddr_in有什么区别联系?sockadd

3、r是一种通用的用于接口编址信息的结构,它将硬件与协议的地址细节相对于接口层隐藏起来,成员依次为sa_len、sa_family和sa_data,而sockaddr_in成员依次为sin_len、sin_family、sin_port、sin_addr和sin_zero。它们的前两个成员其实是一样的,只是命名不同,而sockaddr_in中的sin_port标识传输层的端口,sin_addr标识IP层的地址,所以它是Internet协议的专用接口编址结构,sin_zero仅为填充用,因为sockaddr_in长度不应小于soc

4、kaddr。3.插口编址结构允许的最大长度是多少?sockaddr最后一个成员是可扩展的,这是C语言的通用技术,因为其第一个成员为u_char类型,所以最大长度是255。4.一个接口可以配置多个IP地址,是怎么实现的?ifaddr表示通用的接口地址,ifnet表示接口,它有个类型为ifaddr*的if_addrlist成员,表示当前接口上的地址链表。in_ifaddr表示Internet协议专用的接口地址,而IP属于Internet协议,因此用in_ifaddr表示,所有的IP地址组成一个类型为in_ifaddr*的链表。当

5、增加一个IP地址时,就需要插入这两个链表中;当删除一个IP地址时,就需要从它们当中移除。5.为什么配置IP主机地址和网络掩码可以是独立的?因为它们使用不同的命令实现,前者用SIOCSIFADDR,后者用SIOCSIFNETMASK。当配置IP主机地址时,如果没有指明网络掩码,那么网络掩码被设置成默认的。6.为什么访问IP接口地址使用的是UDP插口而不是原始IP插口?只有超级用户用程才能创建原始IP插口,而通过UDP插口,任何用户进程都能查看接口配置。【Socket】1.为什么会存在插口层?从概念上讲,tcp/ip协议栈划分为

6、链路、网络、传输和应用4层;但从实现上讲,在应用层和其下层中间,引入了一个插口层,作为进程和内核通信的桥梁,主要功能是将进程发送的与协议有关的请求映射到产生插口时指定的与协议有关的实现,从而屏蔽了不同协议处理的细节。2.为什么服务器进程总是要调用bind,客户进程能调用它吗?bind将一个本地地址同一个插口相关联,客户进程需要同一个已知地址建立连接或发送数据报到已知地址,如果不调用bind,服务器进程就无法在某个已知地址上接受TCP连接或接收UDP数据报。客户进程也能调用bind,这样便可以由应用程序而非内核来选择一个本地地

7、址,其结果是只能接收目的地址为被绑定地址的数据包,但通常不必调用bind,因为内核会自动决定外出地址和临时端口。3.对于tcp和udp协议的插口,调用connect有什么区别联系?共同点是设定插口的外部地址(插口的地址存储在相关的协议控制块中),不同点如下1)tcp:与远端系统进行3次握手交互,如果插口是非阻塞的且连接正在进行中,那么返回EINPROGRESS,下次再调用则返回EALREADY;如果连接成功,无论是否阻塞,那么下次再调用会返回EISCONN;如果连接失败,那么下次再调用,则重新开始三次握手。2)udp:没有3

8、次握手交互,直接设定外部地址,无论插口是否阻塞,调用会立即返回,多次调用则会替换老的外部地址。发送数据必须使用write或目的地址为空的sendto,若sendto目的地址非空,则返回EISCONN。如果没有事先调用connect,那么调用目的地址为空的sendto则会返回ENOTCONN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。