ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 뇌자극 TCP/IP 9강 요약
    C_C++ 프로그래밍/뇌를 자극하는 TCP_IP 2019. 5. 29. 21:52



    UDP 복습

    연결 지향 : Threeway handshake

    흐름 기반

    신뢰성 : 재 전송, 재 조합

    단점 : 낮은 성능, 데이터의 연속성 유지에 불리하다.

    스트리밍 방송은 사용 (어느 정도의 잡음이 있어도 괜찮다)





    신뢰성이 꼭 필요하면, TCP를 사용해야 하지만 그렇지 않다면 무 필요.
    => UDP

    User DataGram Protocol (UDP)
    DataGram 중심 프로토콜
    Fire and Forget
    순서가 없다
    신뢰할 수 없다.
    높은 성능을 기대
    => 실시간 스트리밍 방송에 사용 가능


    UDP 헤더는 4개의 필드로 구성되며, 그 각각은 2바이트(16비트)로 이루어져 있다.[1]

    오프셋 옥텟 0 1 2 3
    옥텟 비트  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    0 0 출발지 포트 도착지 포트
    4 32 길이 체크섬


    socket(AF_INET, SOCK_DGRAM, 0)

    Server

    socket() -> bind ->( sendto, recefrom) -> close (listen(), accept() 사용 x)

    UDP bind
    serveraddr.sin_family = AF_INET;
    serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
    serveraddr.sin_port = htons(1234);
    state = bind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr));

    recvfrom(sockfd, buf, MAXLINE, 0, (struct sockaddr *) &cliaddr, &clilen);
    recvfrom(sockfd, buf, MAXLINE, 0, (struct sockaddr *)&cliaddr &clilen);
    sendto(sockfd, buf, strlen(buf), 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
    close(sockfd);

    => 연결 관리가 불 필요하기 때문에 간단하다.
    Client
    scoket() -> sendto(), recvfrom() -> close();
    connect를 사용하지 않아도 되지만 사용해도 된다.
    connet(sockfd, &addr, sizeof(addr));
    sendto(sockfd, buf, strlen(buf, 0, NULL, len);    // NULL을 사용하면 이미 명시된 주소에 연결된다.


                    

    ※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다



    반응형

    'C_C++ 프로그래밍 > 뇌를 자극하는 TCP_IP' 카테고리의 다른 글

    뇌자극 TCP/IP 11강 요약  (0) 2019.06.02
    뇌자극 TCP/IP 10강 요약  (0) 2019.06.02
    뇌자극 TCP/IP 8강 요약  (0) 2019.05.26
    뇌자극 TCP/IP 7장 요약  (0) 2019.05.25
Designed by Tistory.