Socket Programming & TCP-UDP

ㅎㅎ·2023년 8월 19일
0

네트워크

목록 보기
3/6

Socket Programming

  • 사용자 or 개발자는 O.S를 건드리지 않고 프로세스간 통신을 위해 OS가 제공하는 API인 Socket을 사용하여 통신한다
  • Transport layer는 이를 지원하며, TCP or UDP 방식의 Socket이 있다.
  • Socket 자료구조체에는 socket()-소켓생성, bind()-포트번호 지정, listen()-수신대기, accept()-수신수락, write()-packet 전송 등의 함수로 이루어져 있음
  • 이러한 Socket에 대한 관리는 O.S가 다루며, 개발자는 포트번호 지정이나 비즈니스 로직 작성에 집중함

Multiplexing and Demultiplexing

  • Multiplexing: 여러 소켓을 통해 전송될 데이터들을 같은 Link를 태워서 Network layer에서 보내기 위해 한 단위로 묶는 것
  • Demultiplexing: 묶어서 들어온 여러 데이터들을 올바른 소켓에 연결시켜 Application으로 전달하는 것

UDP Socket

  • UDP 사용 시 packet의 header는 source port #, destination port #, length, checksum 4가지로만 구성됨
  • destination ip와 port #만 가지고 data를 구분하여 socket에 연결시킴, 즉 서로 다른 source로 들어와도 같은 socket을 이용함

TCP Socket

  • source ip&port, destination ip&port 4가지 정보를 모두 이용하여 demultiplexing을 진행함, 따라서 4가지 중 하나라도 다르면 socket이 다름
profile
Hello World

0개의 댓글