[네트워크] 9장 전송계층

이효린·2023년 9월 25일
0

Network

목록 보기
9/9
post-thumbnail
💡 유한상태기기, UDP 검사합,

9.1 전송층 서비스

  • 전송층은 응용층과 네트워크층 사이에 위치한다.
  • 이것은 두 응용층, 즉 지역호스트와 원격 호스트 사이의 통신을 제공한다. 이를 process-to-process 통신이라 한다.
  • 통신은 논리적 연결을 이용해 제공된다.
  • 2개의 응용층이 가상적으로 직접 연결을 통하여 이들 사이에 메시지 송신과 수신이 가능하다는 것을 의미한다.

  • 전송층은 네트워크층과 응용층 사이에 위치한다.
  • 전송층은 응용층에 서비스를 제공하는 책임이 있다.
  • 이것은 네트워크층으로부터 서비스를 받는다.
  • 이 절에서 우리는 전송층에 의해 제공될 수 있는 서비스를 다루고 다음 절에서는 다수의 전송층 프로토콜을 다룬다.

9.1.1 프로세스-대-프로세스 통신

9.1.2 포트번호

  • 프로세스 간 통신을 달성하는 몇 가 지 방법이 있지만, 가장 일반적인 방법은 클라이언트-서버 패러다임을 사용하는 것이다.
  • 클라이언트라고 하는 로컬 호스트의 프로세스는 일반적으로 서버라고 하는 원격 호스트의 프로세스에서 서비스를 필요로 한다.
  • 그러나 오늘날 운영체제는 다중 사용자 및 다중 프로그래밍을 모두 지원한다.
  • 여러 로컬 컴퓨터가 동시에 하나 이상의 클라이언트 프로그램을 실행할 수 있는 것처럼 원격 컴퓨터는 동시에 여러 프로그램을 실행할 수 있다.
  • 통신을 위해서는 로컬 호스트, 로컬 프로세스, 원격 호스트, 원격 프로세스를 정의해야 한다.
  • 로컬호스트와 원격호스트는 IP주소를 이용해 정의되고, 로컬 프로세스와 원격 프로세스는 포트번호라 불리는 두 번째 식별자가 필요하다.

  • IP 번호를 통해 호스트를 찾고, 포트번호를 통해 프로세스를 찾는다.
  • ICANN 포트번호 범위
    • well-known (0~1,023)
    • Registered (1,024~49,151)
    • Dynamic or Private (49,152~65,535)

9.1.3 캡슐화와 역캡슐화

  • 소켓주소
    • IP 주소 + 포트번호

- 이를 통해 실제 통신을 한다.
  • 결국 프로세스에서는 애플리케이션 프로토콜을 포함하고 있다. 거기서 메시지를 만들어서 transport 계층으로 내리면 헤더를 붙이게 되는데, 헤더를 붙이고 캡슐화를 하고 상대편에게 보내준다.
  • 상대편에 도착하면 헤더를 제거하고 페이로드를 서버에 보내준다.
  • 이 과정에서 상대편으로 갈 때 IP 주소가 필요하고, 해당 Process를 찾는 데에 포트번호가 필요하다.

9.1.4 다중화 및 역 다중화

  • 클라와 서버가 통신을 할 예정이다
  • 서버 1에 P1과 P3가 있고, 서버 2에 P2가 있다고 해보자.
  • 클라에선 P1, P2, P3를 전부 보내야 할 때, Multiplexer을 통해서 보내야하는데, 이때 서버 1에는 P1, P3를 하나로 묶어서 보낼 수 있다. 이를 Multiplexing이라고 한다.
  • Sever1에서는 이렇게 묶여서 온 P1, P3를 풀어야 한다. 이를 Demultiplexing 이라고 한다.
  • 즉, 전송계층은 상위계층에서 온 것을 묶어서 보낼 수 있고, 이렇게 묶여서 온 것을 풀어서 상위 계층으로 보낼 수 있다.

Pushing or Pulling

9.1.5 흐름 제어 (Flow Control)

  • 데이터를 보낼 때 상대가 처리 가능한 양으로 보내야 한다.
  • 한꺼번에 여러 개 보내고 잘 받았다 응답 받으면 다시 여러 개 보내는 방식이다.

0개의 댓글