본문 바로가기
Virtualization & Cloud/Network(CCNA, CCNP)

네트워크 기초 이론 - TCP/IP Basic (3)

by TwoJun 2024. 8. 12.
728x90
반응형

2024-07-03(WED)

 

1. Connection이란 무엇인가?

Connection이란 컴퓨터 네트워킹에서 특정 장비들 사이에 서로 연결된 상태를 말하며 데이터 통신을 위해 물리적, 논리적으로 설정된 상태를 의미한다.

 

- 물리적인 연결과, 논리적인 연결이란?

Physical Connection : 물리적인 장비인 하드웨어를 통한 연결을 의미한다.

Logical Connection : 물리적인 연결이 아닌, 가상의 통로로 연결된 것을 의미하며 이 가상 통로의 실체는 데이터나 프로토콜이며 이를 통해 각 장비가 서로 논리적으로 연결된 상태를 말한다. 

 

Example) 웹 서비스가 이루어지기 위해 필요한 연결의 종류들?

- 웹의 정보를 운반하는 주체? → TCP(Transmission Control Protocol), TCP 통신을 위해 논리적인 연결이 선행되어야 함 

- TCP를 연결하는 주체?    IP(Internet Protocol) 

 

웹 통신에서 최초 PC로부터 정보가 출발할 땐 이더넷인 물리적 장비에서 출발하지만 이후부터는 IP, TCP와 같은 논리적 연결이 필요하게 된다.

 

 

 

2. LAN 기술의 핵심 장비인 Switch에서 Swithching이란?

- Switching : 데이터 링크 계층에서 동작하는 기능으로 네트워크 내부에서 데이터 프레임을 전송하는 역할을 담당한다. 스위칭을 통해 네트워크 내부에서 특정 MAC Address가 연결된 포트로 데이터를 전송할 수 있다.

 

- 네트워크 내에 연결된 여러 디바이스 사이에서 데이터 프레임을 전송하는 역할을 수행하며 목적지 디바이스로 프레임을 성공적으로 보내기 위해 목적지 MAC Address가 매핑된 포트로 스위칭을 수행한다.

 

- Switch 내부에서 가장 중요한 정보 : Switching Table

(1) 이러한 Swithcing table에선 네트워크에 연결된 장비들 간의 통신을 관리하기 위해 MAC 주소를 갖고 있다.

 

 

 

3. Router 장치의 핵심 정보는? 

- Routing Table (IP 주소 포함됨, IP 주소는 최소한의 정보로 갖고 있어야 한다. 최소한의 정보로 유지하기 위해 IP 주소와 함께 마스크(Mask) 정보를 갖고 있음)

 

 

 

IP 주소를 Routing Table에 등록시키는 주체는?

- 최초 또는 이후에 관리자가 등록(Static route)하는 경우도 있고 이후에 Routing table이 자체적으로 등록 및 수정하는(Dynamic route)하는 경우도 있음

 

- Router가 수행하는 Routing은 여러 네트워크를 연결하고 데이터 패킷을 효율적으로 전송하는 역할을 수행하며 라우터가 데이터 패킷을 목적지 IP 주소를 기준으로 특정 네트워크에 전달한다. 

 

 

 

4. LAN과 LAN을 연결하는 장비의 종류?

(1) Area의 크기에 따라 port - port 연결 

(2) L2 또는 L3 스위치 

(3) 본사와 지사를 연결하는 경우 : Router -- VPN (Virtual Private Network) over MPLS -- Router

* MPLS(Multiple Protocol Label Switching)

연결은 L2 관점에서 그리고 IP 주소 할당에 대한 것도 고려해야 한다.

 

 

 

5. Switch에 연결된 PC들이 상호 통신하기 위해서 필요한 정보는 무엇인가?

- 데이터 프레임으로 정보를 주고받는데, 따라서 프레임을 구성하기 위해 필요한 정보다.

        Frame 구조 : DA(Destination Address, 6) - SA(Sender Address, 6) - Type(2) - Packet(1,500) - FCS(Frame Check Sequence, 4)

 

- 그러한 정보를 어떻게 구하는지?

ARP(Address Resolution Protocol)을 통해서 구할 수 있고, ARP를 통해 수신자의 MAC 주소(물리적 주소)를 알 수 있다.

 

- PC에서 보내는 Frame의 구조?

Frame 구조 : DA(Destination Address, 6) - SA(Source Address, 6) - Type(2) - Packet(1,500) - FCS(Frame Check Sequence, 4)

 

 

 

6. Router에 연결된 PC들이 상호 통신하기 위해서 필요한 정보는 무엇인가?

- 그러한 정보를 어떻게 구하는지? : 상대 PC의 IP 주소

        상대 PC의 IP 주소를 구하려면 Naming Service를 사용해야 한다

        인터넷에서의 Naming Service는 DNS(Domain Name System)를 사용해야 한다.

        컴퓨터의 이름이 DNS 서버에 등록되어 있어야 한다.(이름을 확인하기 위해서는 DNS Client가 필요함)

         DNS Client : Resolver → nslookup을 통해 정보 확인

 

 

 

 

7. Ethernet의 물리 주소 체계와 IP 주소의 체계?

Ethernet : 6 Byte(48 Bit) = OUI(3 Byte ) + Serial(3 Byte)

IP : 4 Byte = Network ID + Host ID

        Classful : A, B, C, D

        Classless : Prefix length → CIDR(Classless Inter-Domain Routing :클래스를 구분하지 않고, Prefix Length를 사용)

        - 엔지니어링 관점에서는 Classless 방식을 일반적으로 사용하게 된다.(관리 및 운영적 측면)

        Ex) 200.1.2.3 (일반적인 경우, Classful) : C Class

              200.1.2.3/24 (Classless, 24 Bit(3 Byte) 영역이 Prefix length가 된다.)

 

 

ETC) Packet tracer의 Simulation : Programming의 debugging 과정과 유사

 

 

 

 

 

 

 

1. ICMP(Internet Control Message Protocol) 

Internet Control Message Protocol

 

ICMP Message Format

 

(1) ICMP 프로토콜은 CL 방식의 서비스를 제공하는 IP network 환경에서 오류 보고(Error Reporting) 기능과 query/response 기능을 제공하는 프로토콜이다.

 

(2) IP Protocol을 보조하기 위해 설계된 프로토콜이다.

- IP 프로토콜만으로는 뭔가 부족한 부분이 있기 때문에 보조하려고 하는 것(CL 방식에서 오는 한계)

 

(3) 패킷 전송 시 경로에 문제가 있어서 TTL 값이 만료될 때까지 목적지에 전달되지 못한 패킷을 버리고 이러한 정보를 송신 디바이스에 알리는 기능을 수행한다.

- 도달할 수 없는 목적지에 패킷을 계속 보내지 않도록 하는 기능(Destination Unreachable)

 

(4) Query 기능(질의/응답 기능, CL 방식)

- 특정 단말이 동작하고 있는지 확인하는 기능이다. (Echo request, Echo response)

 

 

 

 

1-1. ICMP를 사용하는 Application

(1) ping, traceroute(tracert)

 

(2) ping은 ICMP의 query 기능을 활용한 것이다. (Echo request, Echo response)

 

 

 

 

1-2. traceroute(tracert)

traceroute(tracert)

(1) traceroute

 

 

 

 

1-3. 목적지에 패킷이 전달될 수 없음 : Type 3(오류 발생 시 알려줌, Error Reporting) : 

(1) 목적지에 도달할 수 없다 

 

 

 

 

 

1-4. ICMP 실습 (PING)

 

 

 

 

1-5. ICMP 실습 (tracert)

 

 

 

(1) 첫 번째 Echo request의 TTL이 1인 것을 확인할 수 있다.

 

 

(2) 첫 번째 요청에 대한 응답 결과의 TTL은 254, 결과 유형은 Time-to-live Exceeded인 것을 확인할 수 있다.

 

 

 

 

 

 

2. Multicasting (그룹 통신)

2-1. 라우팅 테이블 확인

 

 

(1) 최상위 컬럼의 경우 Default Routing으로 경로를 찾지 못한 모든 네트워크들 경로를 미리 정해놓은 것이다.

 

 

 

 

 

3. IGMP(Internet Group Management Protocol) 

 

IGMP(Internet Group Management Protocol)는 IP 네트워크에서 멀티캐스트 그룹 관리를 위해 사용되는 프로토콜이다. 멀티캐스트 통신은 하나의 송신자가 여러 수신자에게 동시에 데이터를 전송할 수 있도록 하는 방식으로, IGMP는 이 멀티캐스트 그룹에 대한 가입과 탈퇴를 관리하는 역할을 합니다.

 

 

3-1. IGMP의 주요 기능과 역할

(1) 멀티캐스트 그룹 가입 

- 네트워크의 호스트(컴퓨터나 장치)가 특정 멀티캐스트 그룹에서 데이터를 수신하고자 할 때, IGMP를 사용해 해당 멀티캐스트 그룹에 가입을 요청한다.

 

- 이 요청은 IGMP Membership Report 메시지를 통해 라우터에 전달된다.

 

- 라우터는 이 정보를 바탕으로 해당 호스트가 멀티캐스트 그룹의 수신자가 되도록 설정한다.

 

 

(2) 멀티캐스트 그룹 탈퇴

- 호스트가 더 이상 특정 멀티캐스트 그룹의 데이터를 수신하고 싶지 않으면, IGMP를 통해 그룹에서 탈퇴를 요청할 수 있습니다

 

- 이 과정은 IGMP Leave Group 메시지를 사용해 이루어지며, 라우터는 해당 호스트의 탈퇴를 인지하여 더 이상 멀티캐스트 트래픽을 보내지 않도록 조치하게 된다.

 

(3) 그룹 멤버십 쿼리

- 네트워크 라우터는 주기적으로 IGMP Membership Query 메시지를 보내어 현재 네트워크에 있는 호스트들이 특정 멀티캐스트 그룹에 속해 있는지 확인한다.

 

- 이 쿼리에 응답하는 호스트들은 Membership Report 메시지를 통해 여전히 해당 그룹에 속해 있음을 알린다.

 

 

 

 

3-2. IGMP 동작 단계

(1) 그룹 가입

- 호스트가 특정 멀티캐스트 주소로 패킷을 수신하기 위해 IGMP Membership Report 메시지를 보낸다. 이 메시지를 받은 라우터는 해당 호스트를 멀티캐스트 그룹 수신자로 등록한다.

 

(2) 쿼리 및 응답

- 라우터는 일정 간격으로 IGMP Membership Query 메시지를 브로드캐스트하여 네트워크 내 호스트들의 상태를 점검한다. 멀티캐스트 그룹에 속한 호스트들은 이에 대한 응답으로 Membership Report 메시지를 보낸다.

 

(3) 그룹 탈퇴 

- 호스트가 더 이상 특정 멀티캐스트 그룹의 데이터를 필요로 하지 않을 때, IGMP Leave Group 메시지를 보내어 그룹에서 탈퇴한다. 라우터는 이 정보를 기반으로 멀티캐스트 트래픽의 전송을 중단한다.

 

 

 

 

 

4. Tunneling

(1) 네트워크에서  Tunneling의 개념은 데이터를 하나의 네트워크 프로토콜에서 다른 네트워크 프로토콜로 캡슐화하여 전송하는 기술을 의미하고 있다.

 

 

 

 

 

5. Transport Layer (전송 계층)

(1) 크게 아래와 같은 기능을 수행한다.

- 송신 프로세스, 수신 프로세스 간의 신뢰성 있는 정보 전달 기능을 담당하고 있다.

 

- Flow control, Error control을 수행한다.

 

 

 

 

5-1. End-to-End Communication

 

(1) 정보나 데이터가 시스템 또는 네트워크를 통해 시작 지점에서 최종 목적지까지 전달되는 과정을 설명하는 데 사용되는 용어이다.

 

 

 

 

5-2. Port number

(1) IP 주소에 의해 목적지 호스트에 도착한 패킷은 port number에 의해 최종 목적지인 특정 프로세스로 전달된다.

 

(2) 서버의 경우 Well-known port number를 갖고 있다.

- 서버는 클라이언트의 요청을 처리하기 위해 항상 대기 중이다.

- 클라이언트는 서버의 Well-known port number로 서비스를 요청하게 된다.

- 클라이언트는 서버의 서비스를 응답받기 위해 사용할 Ephemeral port number를 할당받게 된다.

 

 

 

 

5-3. UDP(User Datagram Protocol)

(1) CL 방식을 기반으로 통신하고 있다.

 

(2) Flow control, Error Control을 수행하지 않는다. (신뢰성이 보장되지 않음)

 

 

 

 

5-4. TCP(Transmisson Control Protocol) 

(1) TCP(Transmission Control Protocol)는 네트워크 상에서 데이터를 안정적이고 순서대로 전달하는 역할을 맡는다. TCP는 신뢰성 있는 데이터 전송을 보장하기 때문에, 인터넷과 같은 복잡한 네트워크에서 중요한 역할을 수행한다.

 

(2) CO 방식으로 데이터를 전송하며 신뢰성 있는 데이터 전송 기능 보장, 혼잡 제어 등의 기능을 수행하게 된다.

 

 

 

 

5-5. TCP Segment

 

(1) TCP의 데이터 영역이 항상 존재하는 것은 아니다.

- 실제로 데이터를 전송해야 할 때 TCP data 영역에 데이터가 존재한다.

 

- Setup, Finish 하는 과정에선 TCP Data 영역은 의미가 없다.

 

 

(2) CO 방식은 송신자에서 데이터를 보내면 데이터를 정상적으로 보냈는지 확인하는 과정을 거친다. (CL 방식은 수행하지 않음)

-  Acknowledgement number가 이 부분을 관여한다. 

 

 

(3) Window

- Flow control에 관여, 데이터를 얼마나 보내거나 수신 측에서 얼마나 받을 수 있는지, 속도, 용량 관련 영역

 

 

 

 

5-6. TCP Connection Establishment (3-Way Handshaking)

(1) Segment의 운반 -> IP Protocol이 담당

 

(2) Seq : X = 잘 받았는지 확인 요청

 

(3) SYN+ACK (ACK : X + 1) = 잘 받았는지에 대한 답장

ACK : X + 1  -> 다음에 수신할 segment의 sequence number를 의미함

오류가 없는 경우 받은 sequence number + 1한 값을 응답으로 보내는 것

 

(3) Sequence number = x, y는 각각 독립적이다.

 

(4) ACK : Y + 1 

 

(5) 헤더가 없을 때는 1씩 증가하는 원리이지만 데이터 전송과정에서는 전송된 데이터의 바이트 수만큼 시퀀스 넘버가 증가한다.

 

 

 

 

5-7. TCP Connection Termination (4-way Handshaking)

- TCP 연결 종료(TCP Connection Termination)는 TCP 통신에서 연결을 종료할 때 사용되는 프로세스로, 4-way handshake라고 불리는 절차를 통해 이루어진다. 이 과정은 양방향으로 데이터 전송이 모두 완료되었음을 확인하고 연결을 안전하게 종료하기 위해 필요하다

 

(1) FIN 플래그 전송 (Step 1: FIN)

- 연결을 종료하고자 하는 측(보통 클라이언트 또는 서버)이 연결 종료를 요청한다. 이때, 송신자는 TCP 세그먼트의 FIN(종료) 플래그를 설정해서 수신자에게 보내게 된다.

 

- 이 단계에서는 "더 이상 보낼 데이터가 없다"는 신호를 전송한다.

 

 

(2) ACK 응답 (Step 2: ACK)

- FIN 플래그를 수신한 측(보통 서버)은 이를 확인하고, 이에 대한 응답으로 ACK(확인) 플래그가 설정된 세그먼트를 송신자에게 보낸다.

 

- 이 응답은 "FIN 플래그를 받았으며, 종료 요청을 이해했다"는 것을 의미한다.

 

 

(3) FIN 플래그 전송 (Step 3: FIN)

- 수신 측도 자신의 데이터 전송이 완료되었다고 판단하면, 반대쪽(송신자)에게 FIN 플래그를 설정하여 세그먼트를 보낸다. 이로써 수신 측도 연결을 종료하려는 의도를 나타낸다.

 

 

(4) ACK 응답 (Step 4: ACK)

- 처음 연결을 종료하려 했던 송신자는 FIN 플래그를 받고, 이에 대한 확인 응답으로 ACK 플래그가 설정된 세그먼트를 수신 측에 보낸다.

 

- 이 응답으로 양측 모두 연결 종료가 완료되었음을 확인할 수 있다.

 

 

 

 

5-8. Data Transfer(실제 데이터를 주고받는 과정) - 추후 재정리 필요

(1) 송신 및 수신 측에서 데이터가 없을 때는 1씩 증가하지만 데이터 전송 과정에서는 실질적 데이터가 존재하니 데이터 크기 n바이트만큼  더해서 새로운 값 c, d가 생성된다.

 

 

 

 

 

 

 

※ 해당 포스팅을 기준으로 내용 추가가 필요하다고 생각되면 기존 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!

728x90
반응형

댓글