[네트워크관리사 2급] Part 2 - Section 02 - 1

KyungH·2024년 5월 5일
0

자격증 요약정리

목록 보기
6/8
post-thumbnail

📝 TCP/IP 계층

📌 TCP/IP 프로토콜

📍TCP/IP (Transmission Control Protocol/Internet Protocol)

미국방성 모델이라고 하며 OSI 7 계층과 매우 흡사하다
이 기종간 네트워크 환경에 대한 표준으로 OSI보다 먼저 만들어지고 가장 많이 사용된다
미국 ARPANET에서 개발된 프로토콜이다
인터넷에서 사용되고 있으며 다양한 네트워크와 상호 접속이 가능하다

📍TCP/IP 4계층

  • 애플리케이션 계층 (OSI 7 계층 ~ OSI 5 계층)
    사용자들이 사용하는 프로그램이 있는 계층
    FTP, Telnet, SSH, HTTP, SMTP, SNMP 등의 프로토콜이 있다

  • 전송 계층 (OSI 4 계층)
    신뢰성 있게 메세지를 전송하는 TCP 프로토콜이 있다
    비연결형으로 연결하지 않고 빠르게 메세지를 전송하는 UDP 프로토콜이 있다
    TCP는 가상의 연결을 지원하고 에러처리를 실행해서 신뢰성 있게 전송한다

  • 인터넷 계층 (OSI 3 게층)
    IP 주소를 읽어서 경로를 결정하는 라우팅을 실행한다
    논리적 주소인 IP주소를 부여하고 최단 경로를 설정
    IP주소를 하드웨어 주소인 MAC 주소로 변환하는 ARP 프로토콜을 지원한다
    네트워크의 에러를 검사하는 ICMP 프로토콜을 지원한다

  • 네트워크 접근 계층 (OSI 2 계층 ~ OSI 1 계층)
    물리적 케이블 혹은 무선 통신과 연결하고 메세지를 전송한다
    전기적 신호로 변환해서 메세지를 전송한다

📍TCP/IP 프로토콜의 구성

  • TCP : 연결지향, 사용자에게 신뢰성 있는 서비스를 지원한다
    Error Control 기법을 포함하며, ACK 통신을 통해 수신자가 전송을 받았는지 확인한다

  • UDP : 비연결로 데이터 전송을 보장하지않는 비신뢰성 서비스
    TCP에 비해서 전송 속도가 빠르다

  • ARP : IP Address를 LAN 카드의 물리적 주소인 MAC 주소로 변환한다

  • RARP : MAC 주소를 IP Address로 변환한다

  • ICMP : 네트워크 오류와 상태를 점검하기 위해서 사용한다

  • IP : 네트워크 주소와 호스트 주소 정의에 의한 네트워크의 논리적 관리를 담당
    송신자와 수신자의 주소를 지정한다


📌 애플리케이션 계층

📍애플리케이션 계층

일반 사용자들이 사용하는 프로그램이 있는 계층,
사용자는 프로그램을 사용해서 통신을 하게 된다

애플리케이션 계층의 응용 프로그램이 있어 프로토콜을 사용하여
새로운 서비스를 만들어 낼 수 있다
이러한 응용 프로그램들은 내부적으로 전자우편(eMail), 파일 전송(FTP), 웹(HTTP) 등을 사용

해당 애플리케이션 (전자우편, 파일전송, 웹 등)에 맞게 사용자 인터페이스를
설계하는 계층이다, 상대편 계층과 연결하고, 상대편 컴퓨터와 기본적인 사항들,
에러제어, 일관성 제어를 한다, 어떻게 파일을 보낼지, 프린터를 어떻게 공유할지,
전자우편을 어떻게 보낼지를 다룬다

📍애플리케이션 계층의 서비스

FTP : 사용자의 파일을 업로드 혹은 다운로드하는 프로그램
파일 전송을 위한 인터넷 표준으로 제어 접속과 데이터 접속을 위한 분리된 포트 사용

DNS : DNS Query를 사용하여 DNS Server에 URL을 전송하고
해당 URL에 매핑되는 IP주소를 제공

HTTP : 웹 브라우저와 웹 서버 사이에 웹 페이지의 Request 및 Response를 수행

Telnet : 특정 지역의 사용자가 지역적으로 다른 곳에 위치한 컴퓨터를
온라인으로 연결하여 사용

SMTP : RFC 821에 명시된 인터넷 전자우편을 위한 프로토콜
메세지 전달을 위해 Store and Forward 방식을 사용,
암호화 및 인증 기능 없이 사용자의 이메일 전송

SNMP : 네트워크에 대한 트래픽, 세션 등의 네트워크 상태를 모니터링 및 정보 전달

SMTP는 전자우편을 발송할때 MIME라는 전자우편 데이터 형식으로,
메일을 전송하거나 수신 받기 위해 사용,
SNMP는 네트워크의 트래픽을 모니터링하기 위해 사용한다


📌 전송 계층

📍전송 계층

송신자와 수신자 간에 논리적 연결을 수행하는 것, TCP 프로토콜과 UDP 프로토콜이 존재한다
수신측에 전달되는 데이터에 오류가 없고 데이터의 순서가 수신측에 그대로 보존되도록 보장하는
연결지향 서비스의 역할을 하는 종단간(end-to-end) 서비스 계층이다

📍세그먼트 (Segment)

전송 계층에서 TCP 혹은 UDP를 사용할 때 해당 헤더를 메세지에 붙이는 것을 의미한다

TCP 헤더는 UDP에 비해서 크기가 크고 UDP는 작은 특성이 있고,
TCP는 데이터 전송을 위해 가상의 연결을 수행한다
송신자가 메세지를 전송하면 수신자는 ACK를 되돌려서 수신여부를 확인해준다
수신자가 동일한 ACK번호를 반복적으로 전송하면 데이터를 받지 못하는 것이고 TCP는 재전송을 수행한다

재전송 방법은 GO-BACK-N 방법이며, 되돌아온 ACK 번호 이후의 모든 것을 전부 재전송하는 것이다
또한 이때 송신자는 전송 속도를 낮춘다. 이러한 것을 혼잡 제어 라고한다

TCP는 Sequence 번호를 가지고 메세지의 순서를 파악한다, 송신자의 메세지가 꼭 순서대로 도착하지는 않는다
비동기방식으로 데이터를 보내면서 경로 또한 다른 경로로 보내질 수 있기 때문이다

Check Sum은 TCP와 UDP 모두에게 존재하며, 송신 중에 메세지의 변조를 파악하기 위한 방법이다 (패리티 비트와 비슷)

Receive Window는 수신자의 윈도우 크기를 의미하며, 메모리 버퍼를 뜻한다
수신자의 버퍼가 비어있으면 송신자는 해당 버퍼의 크기만큼의 데이터를 한꺼번에 전송한다

📍TCP

네트워크 계층 상위에서 수행되는 전송 계층의 프로토콜로, 클라이언트와 서버 간의 연결지향,
신뢰성 있는 데이터 전송, 에러제어, 흐름제어 등의 기능을 수행한다

TCP는 연결을 지향할 뿐 물리적으로 연결된 것을 아니라서 주기적으로 메세지를 송수신하여
송수신 가능 여부를 확인한다. 이러한 작업은 TCP의 역할이 아니며,
TCP/IP 프로토콜 군의 ICMP 프로토콜이 그 역할을 담당한다

🔶 TCP 상태 전이

TCP 프로토콜에서 가장 중요한 요소로, 최초 연결 신청부터 연결, 종료까지의 상태 변화를 의미

netstat 명령을 실행하여 TCP의 상태 정보를 확인할 수 있고
-p 옵션을 사용하여 모니터링하고 싶은 프로토콜을 지정할 수 있다

🔸과정

  1. 클라이언트는 먼저 서버에 연결 요청 메세지인 SYN 신호를 보내고 SYN-SENT 상태가 된다

  2. 서버는 처음 기동이 되면 클라이언트의 연결을 받기 위해
    LISTEN 상태에서 클라이언트의 연결을 대기

  3. 클라이언트로부터 SYN 메세지가 수신되면 서버는 클라이언트에게
    SYN, ACK를 전송하고 SYN-RECEIVED 상태로 바뀐다

  4. 클라이언트는 ACK를 서버에 전송하고 클라이언트와 서버는
    ESTABLISHED 상태인 연결확립 상태가 된다

✨TCP의 주요 기능

신뢰성 있는 전송 : 수신자는 데이터를 송신 받고 ACK Number를 송신자에게 전송한다
송신자는 ACK Number가 수신되지 않으면 재전송을 실행하여 신뢰성 있는 데이터 송수신을 수행

순서 제어 : 송신자의 메세지 순서를 맞추기 위해 송신자는
메세지 전송 시에 Sequence Number를 같이 보낸다 수신자는 메세지의 순서가 맞지 않게
도착해도 Sequence Number를 통해서 정렬을 수행할 수 있다

완전이중 : 전화기처럼 송신자는 송신, 수신자는 수신을 동시에 할 수 있다

흐름 제어 : 수신자가 메세지를 제대로 받지 못하면, 송신자는 전송속도를 늦춘다

혼잡 제어 : 수신자의 메모리 버퍼 정보 (Window Size)을 송신자가 수신 받아서
수신자의 버퍼 상태를 보고 전송 속도를 조절한다

🔶 TCP Header 구조

🔶 TCP 헤더 세부내용

항목내용
근원지 포트 (Source Port)가상 선로의 송신 측 포트
목적지 포트 (Destination Port)가상 선로의 수신 측 포트
일련 번호 (Sequence Number)송신자가 전송하는 데이터의 일련 번호
전송 확인 (Piggyback Acknowledgement)수신자가 응답받은 데이터의 수

일련번호와 전송 확인은 데이터 흐름 제어에 사용되는 32비트 정수이다

슬라이딩 윈도우 프로토콜은 송신자가 일련번호와 함께 데이터를 전송하고,
수신자는 받은 데이터 수를 의미하는 전송 확인 번호를 응답함으로써
안정적인 데이터 전송을 보장한다


항목내용
TCP 헤더 길이TCP 헤더에 몇 개의 32비트 워드가 포함되어 있는가를 나타내는 필드, 옵션 필드가 가변길이를 갖기 때문에 필요하다, 이 값을 이용하여 실제 데이터의 시작점을 계산
URG (Urgent)긴급 지점 (Urgent Pointer)이 사용될 때 1로 설정
ACK (Acknowledgement)전송 확인(Piggyback Acknowledgement)이 필요로 할 때 설정
EOM (End Of Message)마지막 메세지임을 가리킴
재설정 (RST, Reset)연결의 재설정 (Reset a Connection)
동기화 (SYN, Synchronization)연결 설정 요구 (Establish Connection)
FIN (Finish)연결 해제에 사용되며, 송신 측에서 더 이상의 전송할 데이터가 없음을 의미
윈도우 크기 (Window Size)수신 측에서 수신할 수 있는 최대 Byte 수
체크썸 (Checksum)전송 데이터에 대한 완벽한 신뢰성을 위한 것, 모든 데이터의 합에 대한 '1'의 보수로 계산
급송 지점 (Urgent Point)다음에 이어지는 데이터가 급송되어야 함을 의미, 인터럽트 메세지 대신 사용
옵션 (Options)전송셋업 과정의 버퍼 크기에 대한 통신 등 기타 목적에 활용

송신 측은 전송한 데이터에 대한 수신 측의 전송 확인(ACK)이 도착하기 전에도
윈도우 크기만큼의 데이터를 연속적으로 보낼 수 있다

수신 측에서는 자신의 버퍼 크기에 따라 이 값을 조절하며,
윈도우 크기가 '0'이 되면 송신자는 전송을 잠시 중단한다


🔶 흐름 제어

송수신측 사이의 전송 패킷의 양과 속도를 조절하여 네트워크를 효율적으로 사용
송수신측 사이의 처리 속도와 버퍼 크기 차이에 의해 생길 수 있는 수신측의 오버플로우를 방지

🔶 슬라이딩 윈도우

TCP에서 사용하며,
흐름제어를 수행하는 방법으로 수신자가 수신 받을 만큼 데이터를 전송하는 방법이다

TCP 호스트 간의 효율적인 데이터 전송을 위해 호스트 간 송수신/수신 할 수 있는 Size 정보를 제공
(송신 측의 윈도우와 수신 측의 윈도우 제공)

Stop-and-Wait의 단점을 보환한 방식으로 수신 측의 확인 신호를 받지 않더라도
미리 정해진 프레임의 수만큼 연속적으로 전송한다

동작 방법 : 수신측은 설정한 윈도우 크기만큼 송신측에서 확인 응답(ACK)이 없어도
전송 할 수 있게 하여 동적으로 패킷의 흐름을 제어한다

일정한 수의 패킷을 전송하고 응답이 확인되면 윈도우를 이동하여 그 다음 패킷을 전송한다

🟢 장점 : 송신자와 수신자 간의 네트워크 전송 효율을 극대화하기 위해선
수신자의 버퍼 크기를 확인하고 최대한으로 전송 효율을 극대화 한다
수신자의 ACK의 경우 매번 ACK를 받을 수도 있으나,
ACK 신호도 묶어서 처리해 불필요한 네트워크 부하를 최소화 한다

🔶 혼잡 제어

라우터가 패킷을 처리할 수 있는 속도보다 많은 패킷을 수신하는 경우
라우터는 패킷을 손실, 송신측에서는 패킷을 재전송하게 된다
이러한 과정의 연속으로 데이터의 손실이나 지연이 발생한다

혼잡 제어는 송신 단말의 전송률을 직접 제어하여 혼잡으로 인해 손실 데이터를 최소화 한다

🔸TCP Slow Start

Sender 에서 패킷을 전송하는 비율과 Receiver에서 수신된 ACK를 통해 Congestion Window(CWnd)를
지수의 크기로 증가시키는 기법이다

TCP가 시작될때 전송 속도를 초기 값부터 지속적으로 올리며, 임계값까지 속도를 올린다
그러다 수신자에게 Duplication ACK 값이 오면 데이터를 제대로 받지 못함을 판단하고
송신 속도를 초기 값으로 낮춘다. 또한 전송 속도가 임계값에 도달하면
전송 속도를 임계값의 50%로 낮추고 다시 속도를 올린다

🔸Congetsion Avoidance (혼잡 회피)

일정 시간 동안 ACK가 수신되지 않거나, 일정 수의 Duplicate ACK가 수신되면,
송신자는 패킷 손실을 알게 되고 Congestion Avoidanve 상태가 된다

각 연결마다 Congestion Window 와 Slow Start Threshold 두 개의 변수를 유지한다

Slow Start 상태에서 CWnd 값이 계속 증가하여 임계 값에 도달하면 Congestion Avoidanve 상태,
Congestion Avoidance 상태에서는 매번 ACK가 수신될 때마다 CWnd를 1/CWnd 만큼 증가
Slow Start 에서의 CWnd의 증가가 지수적인데 반해 Congestion Avoidance 상태에서는 선형적인 증가

🔸TCP 혼잡제어 알고리즘

Fast Retransmit : Retransmit Threshold 이상 연속된 Duplicate ACK를 수신하는 경우
TCP는 해당 Segment를 즉시 다시 전송함

Fast Recovery : Fast Retransmit한 이후 새로 Slow Start를 통해 설정된 연결의
안정 상태에 도달할 필요없이 Congestion Avoidance 상태에서 전송 할 수 있도록 함

📍UDP

🔶 UDP (User Datagram Protocol)

데이터를 빠르게 전송할 용도로 사용, TCP에 비해 기능은 없지만,
데이터를 빠르게 송수신한다

재전송 기능이 없어서 네트워크에서 패킷이 손실 될 수 있어
데이터가 전송되는 것을 보장하지 않음

비연결성, 비신뢰성의 특성으로 패킷을 빠르게 전달한다
송수신의 여부에 대한 책임을 Application이 가진다

특징

특징내용
비신뢰성패킷을 목적지에 성공적으로 전송하는 것을 보장하지 않음
비접속형전달되는 패킷에 대한 상태 정보 유지를 하지 않음
간단한 헤더구조TCP에 비해서 간단한 헤더 구조로, 처리가 단순하다
빠른 전송TCP에 비해 전송 속도가 빠르다

🔶 UDP 프로토콜의 Header 구조

가상 선로 개념이 없는 비연결성
블록 단위로 데이터 전송
블록 재전송 및 흐름제어 등이 없음 (데이터 신뢰성이 없음)
슬라이딩 윈도우 등의 복잡한 기술을 사용하지 않음
UDP의 각 사용자는 16비트의 포트 번호를 할당 받음


0개의 댓글

관련 채용 정보