CS/데이터통신

인터넷과 TCP/IP

망재이 2024. 1. 31. 13:19
TCP/IP

 

- 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 받을 수 있도록 하는 표준 프로토콜

- 전송 제어 프로토콜(TCP) + 인터넷 프로토콜(IP)

 

  • TCP/IP의 구조
OSI TCP/IP 기능
응용 계층
표현 계층
세션 계층
응용 계층 응용 프로그램 간의 데이터 송수신 제공
전송 계층 전송 계층 호스트들 간의 신뢰성 있는 통신 제공
네트워크 계층 인터넷 계층 데이터 전송을 위한 주소 지정, 경로 설정
데이터 링크 계층
물리계층
네트워크 액세스 계층 실제 데이터를 송수신하는 역할

 

  • 네트워크 액세스 계층
    - 하드웨어적인 요소와 관련된 모든 것을 지원하는 계층
    - 송신측 단말기는 인터넷 계층으로 전달받은 패킷에 물리적 주소인 MAC 주소 정보를 갖는 헤더를 추가하여 프레임을 만들어 전달
    - 대표 프로토콜 : 이더넷, IEEE 802, HDLC, X.25, RS-232C, SLIP 등

* 물리적 주소 (MAC Address) : 랜 카드 제작사에서 랜 카드에 부여한 고유 번호

* 네트워크 접근 계층 대표 프로토콜

▶︎ 이더넷 (ethernet) : 근거리 통신망 (LAN)의 대표적인 통신 프로토콜

▶︎ IEEE 802 : LAN을 위한 표준 프로토콜

▶︎ HDLC : 비트 위주의 데이터 링크 제어 프로토콜

▶︎ X.25, RS-232C : DTE와 DCE 같의 인터페이스를 제공하는 프로토콜

▶︎ SLIP : IP에 대한 기본 프레임을 제공하는 매우 간단한 2계층 프로토콜

 

  • 인터넷 계층
    - IP는 네트워크의 주소 체계를 관리하며, 데이터그램을 정의하고 전송을 위한 경로 결정을 담당
    - 대표 프로토콜 : IP, ICMP, IGMP, ARP, RARP 등

* 인터넷 계층 대표 프로토콜

▶︎ IP (Internet Protocol) : 네트워크의 주소 체계를 관리하며 데이터그램을 정의하고 전송을 위한 경로 결정을 담당, 비연결형으로 신뢰성 이 보장되지 않음

▶︎ ICMP (Internet Control Message Protocol) : 통신중에 발생하는 오류 처리, 전송 경로 변경 등을 위한 제어 메시지를 관리

▶︎ IGMP (Internet Group Management Protocol) : 멀티캐스트 그룹 유지를 위해 사용되는 프로토콜

▶︎ ARP (Address Resolution Protocol) : IP 주소를 MAC 주소로 변환

▶︎ RARP (Reverse ARP) : MAC 주소를 IP 주소로 변환

 

  • 전송 계층
    - 네트워크 양단의 송수신 호스트 사이의 신뢰성 있는 전송 기능을 제공
    - 시스템의 논리 주소와 포트를 가지므로 각 상위 계층의 프로세스를 연결
    - 대표 프로토콜 : TCP, UDP

  • 응용 계층
    - 사용자에게 서비스를 제공
    - 대표 프로토콜 : FTP, SMTP, SNMP 등

* 응용 계층 대표 프로토콜

▶︎ FTP (File Transfer Protocol) : 파일을 효율적으로 주고받을 수 있는 파일 전송 프로토콜 (포트번호 : 21)

▶︎ SMTP (Simple Mail Transfer Protocol) : 전자 우편을 교환하는 서비스 (포트번호 : 25)

▶︎ SNMP (Simple Network Management Protocol) : 다른 네트워크 장치를 원격에서 관리하기 위한 간단한 방법을 제공하는 인터넷 표준 프로토콜

▶︎ HTTP (Hyper Text Transfer Protocol) : 인터넷에서 HTML 문서를 송수신하기 위한 표준 프로토콜 (포트번호 : 80)

▶︎ Telnet (Telecommunition Network Protocol) : 원격지에 위치한 호스트 컴퓨터를 로컬 컴퓨터처럼 사용할 수 있도록 해주는 서비스로 가상 단말 기능을 구현하는 프로토콜 (포트번호 : 23)

▶︎ DNS (Domain Name System) : 도메인 네임을 IP 주소로 매핑하는 시스템

 

▶︎ DHCP (Dynamic Host Configuration Protocol) : 네트워킄의 각 노드들에게 유일한 IP 주소를 자동으로 할당해주고 관리해주는 서비스로, 네트워크 효율을 높임

더보기

Q. 프로토콜에 대한 설명으로 옳지 않은 것은?

1. ARP는 데이터 링크 계층의 프로토콜로 MAC 주소에 대해 해당 IP 주소를 반환해 준다.

2. UDP를 사용하면 일부 데이터의 손실이 발생할 수 있지만 TCP에 비해 전송 오버헤드가 적다.

3. MIME는 텍스트, 이미지, 오디오, 비디오 등 멀티미디어 전자우편을 위한 규약이다.

4. DHCP는 한정된 개수의 IP 주소를 여러 사용자가 공유할 수 있도록 동적으로 가용한 주소를 호스트에 할당해준다.

 

-> ARP는 IP 주소를 MAC 주소로 변환해준다.

 

 

Q. ARP(Address Resolution Protocol)에 대한 설명으로 틀린 것은?

1. 네트워크에서 두 호스트가 성공적으로 통신하기 위하여 각 하드웨어의 물리적인 주소문제를 해결해 줄 수 있다.

2. 목적지 호스트의 IP주소를 MAC주소로 바꾸는 역할을 한다.

3. ARP캐시를 사용하므로 캐시에서 대상이 되는 IP주소의 MAC주소를 발견하면 이 MAC주소가 통신을 위해 사용된다.

4. ARP캐시를 유지하기 위해서는 TTL값이 0이 되면 이 주소는 ARP캐시에서 영구히 보존된다.

 

-> TTL값이 0이 되면 해당 주소는 폐기된다.

 

 

Q. 다음에서 설명하는 프로토콜은 무엇인지 영어 약자 또는 영어 Full Name으로 쓰시오.

 

[ - 호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해 주는 프로토콜 ]

[ - UDP 기반 프로토콜이며, 서버가 네트워크 클라이언트에게 IP 주소를 실시간으로 부여할 수 있음] 

 

-> DHCP

 

 

 

TCP (Transimission Control Protocol)

 

  • 연결 지향형 프로토콜
    - 송신측 컴퓨터와 수신측 컴퓨터가 데이터를 전송하기 전에 먼저 데이터 송수신을 위한 연결 통로를 만들고 전송하는 프로토콜
    - 송신측 컴퓨터는 데이터를 전송하기 전에 수신측 컴퓨터까지의 연결 상태를 확인한 후 데이터 전송을 시작하며 통신이 종료될 때까지 연결 상태를 유지
    - 양방향 연결형 서비스를 제공하며 가상 회선 연결 형태의 서비스를 제공
    - 신뢰성 있는 경로를 확립하고 순서 제어, 오류 제어, 흐름 제어 기능을 하며 메시지 전송을 감독

  • 3-way handshaking
    - TCP는 송신측과 수신측을 연결하기 위해 신호를 3단계로 교환
    1. 송신측이 수신측에 SYN 세그먼트를 보내 연결 설정을 요청
    2. 수신측이 송신측에 수신 확인으로 SYN 세그먼트와 ack를 전송
    3. 송신측이 수신측에 응답 세그먼트의 확인 응답으로 ack를 보냄

 

  • 4-way handshaking
    - TCP는 송신측과 수신측 연결을 해제하기 위해 신호를 4단계로 교환
    1. 송신측이 수신측에 FIN 세그먼트를 보내 연결 해제를 요청
    2. 수신측이 송신측에 확인 응답으로 ack 세그먼트를 전송
    3. 수신측이 송신측에 FIN 세그먼트를 전송하여 연결 해제를 요청
    4. 송신측이 수신측에 응답 세그먼트의 확인 응답으로 ack를 보냄

 

  • TCP 흐름 제어
    - 수신측의 컴퓨터는 패킷이 정상적으로 도착했는지의 여부를 송신측 컴퓨터에 알리며, 정상적으로 전송되지 못한 패킷은 송신측 컴퓨터가 재전송
    - 슬라이딩 윈도우 방식을 사용
    - 윈도우 크기는 한 번에 전송되는 패킷의 개수, 수신 버퍼의 크기



UDP (User Datagram Protocol)

 

  • UDP의 특징
    - 비연결 지향 프로토콜로 TCP와는 달리 패킷이나 흐름제어, 단편화 및 전송 보장 등의 기능을 제공하지 않으므로 전송 속도가 빠름
    - UDP 헤더는 TCP 헤더에 비해 간단하므로 상대적으로 통신 과부하가 적음 (source port, destination port, total length, checksum)
    - 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 정기적으로 반복해서 전송할 경우에 사용
    - UDP를 사용하는 대표적인 응용 계층 프로토콜로는 DNS, SNMP 등이 있음



IP (Internet Protocol)

 

  • IPv4
    - 인터넷에 연결된 모든 컴퓨터 다원을 구분하기 위한 고유한 주소
    - 8비트씩 4부분, 총 32비트로 구성
    - 네트워크 부분의 길이에 따라 A클래스에서 E클래스까지 총 5단계로 구성
A 클래스 국가나 대형 통신망에 사용
[네트워크][호스트][호스트][호스트]로 구성
기본 네트워크 마스크는 255.0.0.0
B 클래스 중대형 통신망에 사용
[네트워크][네트워크][호스트][호스트]로 구성
기본 네트워크 마스크는 255.255.0.0
C 클래스 소규모 통신망에 사용
[네트워크][네트워크][네트워크][호스트]로 구성
기본 네트워크 마스크는 255.255.255.0
D 클래스 멀티캐스트 용으로 사용
E 클래스 실험적 주소이면 공용되지 않음

 

  • 서브네팅 (Subnetting)
    - 네트워크 번호와 호스트 번호로만 구분하지 않고 호스트 번호 부분을 서브넷 번호와 호스트 번호로 세분하는 방식
    - 4바이트의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고 하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용
    - 서브넷 주소를 사용하면 외부 라우터가 내부 네트워크 조직을 모르게 하고, 라우팅 테이블의 크기를 줄이는 효과도 얻음

더보기

* 서브네팅의 예

Q. 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 서브넷으로 나누시오. (단, IP Subnet-Zero를 적용)

-> 192.168.1.0/24 네트워크의 서브넷 마스크는 1의 개수가 24개, 즉 C 클래스에 속하는 네트워크

     [11111111][11111111][11111111][00000000]

     마지막 호스트 부분을 3개의 서브넷으로 나누라고 했으므로 8비트 중 3을 표현하는데 필요한 2비트를 제외하고 나머지

     6비트를 호스트로 구성

     [11111111][11111111][11111111][11](서브넷 번호)[000000](호스트 번호)

     호스트 ID가 6비트로 설정되었고, FLSM(고정된 크기로 주소 할당) 방식을 이용하라고 했으므로 네트워크에 2^6 = 64개씩

     고정된 크기로 할당

서브넷 ID 호스트 수 IP 주소 범위
1(00) 64 192.168.1.0 ~ 63
2(01) 64 192.168.1.64 ~ 127
3(11) 64 192.168.1.128 ~ 191

 

 

Q. 서브넷 마스크를 255.255.255.224로 하여 한 개의 C클래스 주소 영역을 동일한 크기의 8개 하위 네트워크로 나누었다. 분할된 네트워크에서 브로드캐스트를 위한 IP 주소의 오른쪽 8비트에 해당하는 값으로 옳은 것은?

1. 0

2. 64

3. 159

4. 207

 

-> C클래스는 3바이트의 네트워크 주소와 1바이트의 호스트 주소를 가지고 있으며 기본 네트워크 마스크는 255.255.255.0

동일한 크기의 8개 하위 네트워크로 나누라고 했으므로 8을 표현하기 위한 3비트를 제외하고 나머지 5비트를 호스트 주소로 구성한다. 호스트 주소의 개수는 2^5로 총 32개가 되고 IP 주소 범위를 표현하면 아래와 같다.

서브넷 ID IP 주소 범위
1 255.255.255.0 ~ 31
2 32 ~ 63
3 64 ~ 95
4 96 ~ 127
5 128 ~ 159
6 160 ~ 191
7 192 ~ 223
8 224 ~ 255

 

  • IPv6
    - 현재 사용하고 있는 IPv4의 주소 부족 문제를 해결하기 위해 개발
    - 16비트씩 8부분, 총 128비트로 구성
    - 자료 전송 속도가 빠르며 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결
    - 패킷 크기에 제한이 없으며 주소의 확장성, 융통성, 연동성이 뛰어남
    - 각 부분을 16진수로 표현하고, 콜론(:)으로 구분
    - 단축 표현이 가능
    -> 두 개의 콜론 사이에 있는 4개의 16진수 중 앞쪽의 0은 생략 가능 (ABCD : BC34 : 4 : 2350 : AAFF : 0 : 1234 : 2341)
    -> 0으로만 구성된 섹션은 0을 모두 생략하고 두 개의 콜론으로 대체할 수 있으며, 주소당 한 번만 허용 (ABCD : BC34 : 4 : 2350 :: 1234 : 2341)
    - 세가지 주소 체계로 나누어짐 (유니캐스트 : 1 대 1 통신에 사용, 멀티캐스트 : 1 대 다 통신에 사용, 애니캐스트 : 1 대 1 통신에 사용되며 가장 가까이 있는 단일 수신자 간의 통신)
    ▶︎ 헤더
    - 기본 헤더 뒤에 확장 헤더를 삽입하여 더욱 다양한 정보의 저장이 가능해져 네트워크 기능 확장이 용이
    - 각 패킷은 기본 헤더와 페이로드로 구성
    - 페이로드는 선택적인 확장 헤더들과 상위 계층의 데이터로 구성
    - 기본 헤더의 길이는 40바이트로 고정
더보기

Q. IP 프로토콜에서 사용하는 필드와 필드에 대한 설명으로 틀린 것은?

1. Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시한다.

2. Packet Length는 IP 헤더를 제외한 패킷 전체의 길이를 나타내며 최대 크기는 2^32-1비트이다.

3. Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것이다.

4. Version Number는 IP 프로토콜의 버전번호를 나타낸다.

 

-> Header Length는 4바이트 단위로 표시

Packet Length는 IP 헤더를 포함한 패킨 전체의 길이를 나타내며 최대 크기는 2^16 - 1비트이다.

 

Q. IP 주소체계와 관련한 설명으로 틀린 것은?

1. IPv6의 패킷 헤더는 32 octet의 고정된 길이를 가진다.

2. IPv6는 주소 자동설정(Auto Configuration) 기능을 통해 손쉽게 이용자의 단말을 네트워크에 접속시킬 수 있다.

3. IPv4는 호스트 주소를 자동으로 설정하며 유니캐스트(Unicast)를 지원한다.

4. IPv4는 클래스별로 네트워크와 호스트 주소의 길이가 다르다.

 

-> IPv4의 헤더는 가변적이고 주소크기는 32bit / IPv6의 헤더는 40바이트로 고정이며 주소크기는 128bit이다.

참고로, v4는 유니 멀티 브로드캐스트에 사용되며 v6는 유니 애니 멀티캐스트에 사용된다.

 

 

 

 

 

※ 참고

2024.01.31 - [CS/데이터통신] - 통신 네트워크

 

통신 네트워크

토폴로지에 따른 네트워크의 분류 성형 (star) - 중앙집중적인 구조이므로 유지보수나 관리가 용이 - 하나의 단말기가 고장나더라도 다른 단말기에 영향을 주지 않으므로 안전성이 높음 - 그러나

mangs2e.tistory.com

 

728x90