• 嵌入式面试常见问题(四)


    1.在基于Linux的网络套接字编程中,如果需要创建一个IPv4的网络套接字,应该在socket函数中指定domain参数为AF_INET

    解析: 

    socket()函数创建套接字

    函数原型:int socket(int domain, int type, int protocol);

    domain:协议簇,表明IP地址的类型

    AF_INET : IPv4

    AF_INET6: IPV6

    type:socket的类型

    SOCK_STREAM:面向连接的数据传输方式

    SOCK_DGRAM:无连接的数据传输方式

    protocol:传输协议(一般为0)

    IPPROTO_TCP:TCP传输协议

    IPPTOTO_UDP:UDP传输协议

    返回值

    成功:大于或等于0

    失败:-1

    2.常见的TCP/IP应用层协议有:FTP、HTTP/HTTPS、SMTP、NTP、SSH等。PPP协议属于数据链路层协议.

    3.客户端TCP连接的三次握手发生在客户端connect连接的过程中。

    4. IPv4使用4个字节表示IP地址;IPv6使用16个字节表示IP地址;1字节8位,IPv4是4字节32位, IPv6是16字节128位

    5.TCP/IP协议网络分层中的四层分别是应用层、传输层、网络层和数据链路层


    6.TCP协议是一个可靠的面向连接的传输层协议;UDP协议是一种不可靠的无连接的传输层协议;TCP协议比UDP协议在通讯上更可靠;TCP协议不支持多播和广播,而UDP协议可以支持多播和广播;TCP协议比UDP协议在数据传输前的操作更复杂;因为它需要三次握手建立连接之后,才能收发数据,而UDP协议则不需要握手连接这一步;TCP协议是面向字节流的,而UDP协议是面向报文的

    7.TCP通信只能是一对一的通信,但UDP支持一对一,一对多,多对一和多对多交互通信。 

    8.bind函数在客户端和服务端都可以调用,只不过常见的是服务器调用,而客户端调用很少见。 udp通信时,客户端想要指定特定端口进行通信可以使用bind函数。

  • 相关阅读:
    三年测试经验, 字节跳动离职后, 一口气拿到 15 家公司 Offer
    【研0自学100天 —— Day 8 函数定义和声明 】
    LeetCode【74】搜索二维矩阵
    leetcode 332. 重新安排行程
    【10】基础知识:React - DOM的diffing算法
    C++11->右值引用
    开发板通过网线连接电脑而上网
    动态计算图笔记
    数据结构与算法之一道题感受算法(算法入门)
    Linux网络基础2之http
  • 原文地址:https://blog.csdn.net/ssz__/article/details/136456056