본문 바로가기

TCP / UDP .. 그리고 기타 용어 정리

웹에 관련한 헷갈리는 용어 정리..! 

 

참조 / 출처 

 - 위키백과

 - https://mangkyu.tistory.com/15 [MangKyu's Diary]

 - https://coding-factory.tistory.com/613

 

1. 인트라넷 

 - 단체의 직원만 접근이 가능한 사설망 

 - 인터넷 프로토콜을 쓰는 폐쇄적 근거리 통신망 

 - 방화벽을 설치하여 보안을 유지 

 

2. 프로토콜 

 - 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계

 - 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구

 

3. TCP

 - Transmission control protocol 전송 조종 규약

 - 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서   대로, 에러없이 교환할 수 있게 한다

 - 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나

 - 웹 브라우저들이 www서버에 연결하거나 , 파일, 이메일 전송에도 사용됨

 - 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

 - 연결형 서비스로 가상 회선 방식을 제공

 -> 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를

     배정

 -> 패킷 : 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각         들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 합니다.

 - 3- way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제 

 -> 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해서

     세션을 수립

 -> 3-way handshaking 

아래 연결 과정 설명

  1. Client에서 Server에 연결 요청을 하기위해 SYN 데이터를 보낸다.
  2. Server에서 해당 포트는 LISTEN 상태에서 SYN 데이터를 받고 SYN_RCV로 상태가 변경된다.
  3. 그리고 요청을 정상적으로 받았다는 대답(ACK)와 Client도 포트를 열어달라는 SYN 을 같이 보낸다.
  4. Client에서는 SYN+ACK 를 받고 ESTABLISHED로 상태를 변경하고 서버에 ACK 를 전송한다.
  5. ACK를 받은 서버는 상태가 ESTABLSHED로 변경된다. 

 - 흐름 제어 및 혼잡 제어 

 - 높은 신뢰성을 보장

 - UDP보다 속도가 느림 

 - 연속성보다 신뢰성 있는 전송이 중요할 때에 사용되는 프로토콜 ex) 파일 전송 

 

4. TCP 서버의 특징 

 - 서버소켓은 연결만을 담당한다.

 - 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용된다

 - 서버와 클라이언트는 1대1로 연결된다.

 - 스트림 전송으로 전송 데이터의 크기가 무제한이다.

 - 패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.

 - Streaming 서비스에 불리하다.(손실된 경우 재전송 요청을 하므로)

 

5. TCP 헤더 정보 

 

 

6. TCP state ( netstat 명령어로 확인 가능) 


 - LISTEN : 서버의 데몬이 떠서 접속 요청을 기다리는 상태
 - SYN-SENT : 로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태
 - SYN_RECEIVED : 서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트 에게 확인 메시지는 받지 않은 상태
 - ESTABLISHED : 3 way-handshaking 이 완료된 후 서로 연결된 상태
 - FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받 아 종료하는 과정의 상태
 - TIME-WAIT : 연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어두고 있는 상태
 - CLOSING : 흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태 

 - CLOSED : 완전히 종료

 

7. TCP 제어 비트 정보 

 

8. UDP 

 - 비연결형 서비스로 데이터그램 방식을 제공한다

  -> 연결을 설정하고 해제하는 과정이 존재하지 않음 

 - 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.

 - UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.

 - 신뢰성이 낮다

 - TCP보다 속도가 빠르다

 - 흐름 제어 또는 혼잡 제어와 같은 기능도 처리하지 않음

 - TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만 신뢰성있는 데이터의 전송을 보장하지는 못한다

 - 그렇기 때문에 신뢰성보다는 연속성이 중요한 서비스 예를 들면 실시간 서비스(streaming)에 자주 사용

 - 데이터 경계를 구분한다 

  - 신뢰성 없는 데이터를 전송한다. 

 - 데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다. 

 - 패킷 관리가 필요하다 

 - 패킷 오버 헤드가 적어 네트워크 부하가 감소됨. 

9. UDP 서버의 특징 

 - UDP에는 연결 자체가 없어서(connect 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없다.

 - 소켓 대신 IP를 기반으로 데이터를 전송한다.

 - 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.

 - 데이터그램(메세지) 단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.

 - 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.

 - 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다.

 

 

10. UDP의 헤더 정보

11. TCP / UDP 공통점

 - 포트 번호를 이용하여 주소를 지정

 - 데이터 오류를 확인하기 위한 체크섬 존재 

 

12. IP 

 - Internet Protocol의 줄임말로

 - 인터넷에서 컴퓨터의 위치를 찾아서 데이터를 전송하기 위해 지켜야 할 규약

 - 전 세계 수억대의 컴퓨터가 인터넷을 하기 위해서는 서로의 정체를 알 수 있도록 특별한 주소를 부여했는데 이 주소를  IP주소

 - IP는 4개의 숫자로 구성

 - 숫자의 크기에 따라 IPv4(32비트, 각 숫자는 1바이트), IPv6(128비트, 각 숫자는 4바이트)로 나뉨.

 - 일반적으로는 IPv4는 10진수로 표현하며 각 자리는 .으로 구분하고, IPv6는 각 자리를 4자리 16진수로 표현, 각 자리 는  :로 구분. 

 

 

 

 

 

13. 흐름 제어 Flow Control

 - 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지

 - 송신측에서 감당이 안되게 데이터를 빠르게 많이 보내면 수신자에서 문제가 발생하기 때문

 

14. 혼잡 제어 Congestion Control 

 - 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지

 - 만약 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막음 

 

 

4. 전송 계층

 - 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층

 - 데이터 전달 

 

(교환 방식)

 

 

 

(TCP 방식)

(UDP 방식 )

'' 카테고리의 다른 글

URL / URI 차이  (0) 2022.04.19
WEB / WAS의 차이  (0) 2022.04.19
Session / Cookie 의 차이  (0) 2022.04.19
TCP/IP 4 계층  (0) 2022.04.19
OSI 7 계층  (0) 2022.04.19