본문 바로가기
네트워크

[네트워크] 네트워크 정리

by doflamingo 2019. 10. 9.

전송 계층 - Transport Layer (L4)

- 프로세스 사이의 메시지 전달에 관여하고 프로세스에서 프로세스로 전달(Process to Process)

- 프로세스의 구별을 위해서 포트번호를 사용 

- 클라이언트의 프로세스는 시간에 따라 생성, 소멸을 반복한다. 

- 클라이언트의 포트번호는 운영체제에 의해서 할당된다. 

 

- 서버 프로세스는 클라이언트에게 상시 서비스를 해줘야한다. 

- 서버의 포트번호는 고정적으로 할당되고 모두 알고 있어야 하기 때문에 알려진 포트 번호를 사용한다.

ex) FTP: 20,21  SMTP: 25  DNS: 53  HTTP: 80 

 

※포트번호 : IP주소를 가진 컴퓨터에서 여러 개의 프로세스를 구분하기 위한 역할 (16비트 구성)

 

 

전송계층 프로토콜 

1. User Datagram Protocol(UDP)

  • UDP는 비연결형, 비신뢰성 수송 프로토콜로서 흐름제어나 에러제어가 없다. 

    - UDP 가 에러를 검출하면 단순히 폐기한다. (checksum으로 검출)
  • UDP는 오버헤드가 작은 아주 단순한 프로토콜에 이용된다.

Ex) DNS, SNMP 

 

    1.1 UDP 헤더

    

    - UDP의 헤더는 8바이트의 고정된 크기를 갖는다. 

    - 체크섬의 계산은 선택사항이다. (계산되지 않으면 필드의 값은 0이다.)

 

UDP 헤더 

 

 

 

  1.2 UDP Checksum

  

 - 가상헤더를 생성해서 체크섬을 계산하는데, 가상헤더에는 송신자 IP주소, 목적지 IP 주소, 프로토콜 필드, 전체 길이 필드로 구성된다.

체크섬 대상

- 체크섬 계산 방법 

 

 

 

 

  1.3 UDP 동작 

  • UDP는 비연결형 서비스를 제공한다. 

    - 데이터그램들 사이에 서로 관련이 없다. 

    - 번호를 붙이지 않는다. 

    - 연결설정이나 종료과정이 없다. 

    - 각 UDP데이터 그램은 서로 다른 경로로 전달될 수 있다. 

  • UDP는 흐름제어나 에러제어가 없다. 

    - 수신자는 수신 메시지로 오버플로우 될 수 있다(흐름제어 X)

    - 송신자는 메세지가 유실되거나 중복되었는지 알 수 없다. 

  1.4 UDP 사용

  • 간단한 요청/ 응답 서비스에 적합하다. 
  • 프로세스에서 내부 흐름제어와 에러제어를 갖는 경우 적합하다.
  • 멀티캐스팅에 적합하다.
  • SNMP, RIP에서 사용한다.

2. Transmission Control Protocol (TCP)

 

- TCP는 프로세스간 통신, 스트림 전달 서비스, 전이중 통신, 연결지향 서비스, 신뢰성 있는 서비스를 제공한다. 

 

- 연결 설정과 해체 과정이 존재한다. 

 

- 데이터의 안전한 도착을 확인하는 ACK를 사용하여 신뢰성 있는 전송을 제공한다.

 

- TCP는 프로세스간의 통신을 위해 포트 번호를 사용한다. 

 

 

2.1 스트림 전달 서비스 

 

- TCP는 데이터를 바이트의 나열로 전달하는데 효율성을 위해 여러 바이트를 블록으로 구성된 세그먼트를 만들어 전송 한다. 

 

 

2.2 TCP 특징

 

- TCP는 모든 바이트에 번호를 부여한다. 

  • 시작번호는 0 - 2^32 -1 사이의 임의의 번호를 갖는다.
  • 번호는 흐름제어와 에러제어에 사용한다. 
  • 세금너트의 순서번호는 해당 세그먼트가 나르는 데이터의 첫번째 바이트 번호이다. 

- ACK 번호는 수신해야 할 다음 바이트 번호이다. 

  • ACK번호는 누적 값으로서 수신자는 해당 번호 이전의 모든 바이트를 안전하게 받았음을 의미한다. 
  • 예를 들어 1234가 ACK번호라면, 1233바이트까지 모두 받았음을 의미한다. 

2.3 TCP 헤더

 

- TCP 헤더는 20바이트이며, 옵션이 있으면 60바이트까지 존재할 수 있다. 

- 헤더는 4바이트 단위로서 표시한다. 

 

TCP 헤더 

2.4 TCP 헤더의 제어필드

 

 

제어필드  설명
URG Urgent Point가 유효하다.
ACK ACK가 유효하다
PSH 세그먼트를 모으지 않고 바로 보낸다.
RST 연결 설정을 새로 한다.
SYN 연결 설정한다.
FIN 연결을 끊는다.

 

2.5 Urgent Point 

- 송신자는 수신자가 순서에 관계없이 데이터가 우선적으로 처리되길 요청할 수 있다. 

- urgent point에 tcp 세그먼트에 앞에서부터 어디까지 긴급 메시지인지 주소를 나타내준다. 

 

2.6 Checksum

- 무조건 해야한다.

- 방법은 UDP와 같은 방법으로 된다. 

 

2.7 연결 설정과 해제 

 

- 3way Handshake, 4way Handshake

 

2.8 흐름 제어 

 

수신측에서 받을 수 있는 데이터 크기를 알려준 것을 Window Flow Control이라 하고 그 크기를 윈도우 사이즈라고 한다. 

 

 

 

 

출처: https://www.youtube.com/watch?v=sEWkbFoqgMc

        https://www.youtube.com/watch?v=7yiWXepobEk

        https://wiki.mikrotik.com/wiki/Manual:Connection_oriented_communication_(TCP/IP)

        http://telescript.denayer.wenk.be/~hcr/cn/idoceo/udp_header.html

        http://telescript.denayer.wenk.be/~hcr/cn/idoceo/tcp_header.html

 

'네트워크' 카테고리의 다른 글

[네트워크] 네트워크 면접 준비  (0) 2019.10.30
[네트워크] 네트워크 보안  (0) 2019.10.24
[네트워크] 네트워크 정리  (0) 2019.10.15
[네트워크] 네트워크 정리  (0) 2019.10.15
네트워크 정리  (0) 2019.10.09

댓글