Barista7

정보통신공학 전공과목인 인터넷 프로토콜을 공부하면서 과제로 작성했던 문제와 정답을 다시 정리해 보았다.

 

학기마다 과제로 출제되는 문제가 변경되니 문제유형을 참고만 하면된다.

 

주로 강의교재를 많이 참고했고, 인터넷 검색을 통해 다양한 정보들을 얻을 수 있었다.

 

 

 

 

=

 

 

 

 

 

정보통신공학(인터넷 프로토콜) 과제#1 문제, 정답 정리

 

 

 

 

 

 

 

 

인터넷 프로토콜 과제, 문제&정답

 

 

1. 인터넷에서 사용되는 ‘Layer’의 개념에 대해 설명하고 layer를 사용했을 때 얻을 수 있는 이점에 대해 설명하고 Internet Protocol Stack과 ISO/ISO Reference Model을 비교하여 각 모델을 구성하는 layer의 역할을 명시하고 차이점을 설명하시오.

 

 

1) Layer
통신 네트웍으로 구성된 두개의 종단 이용자 사이에서, 통신 처리를 각 계층이 가지고 있는 특별한 기능을 가지고 계층별로 나눌 수 있도록 하는 것이다.

 

 

2) Internet Protocol Stack
- Application, Transport, Network, link, Physical

 

① Application
- 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. 인터넷의 애플리케이션 계층은 HTTP, SMTP, FTP와 같은 많은 프로토콜을 포함한다. 한 종단 시스템에 있는 애플리케이션이 다른 애플리케이션과 정보 패킷을 교환하는데 이 프로토콜을 사용한다. 애플리케이션 계층에서의 이 정보 패킷을 Message라고 부른다. DNS(Domain Name Server)는 애플리케이션 계층에서 인터넷 주소를 32비트 네트워크 주소로 변환하는 기능을 한다.

 

② Transport
- 인터넷의 트랜스포트 계층은 클라이언트와 서버 간에 애플리케이션 계층 메세지를 전송하는 서비스를 제공한다. TCP와 UDP라는 대표적인 트랜스포트 프로토콜이 존재한다.
- TCP는 애플리케이션에게 연결지향형 서비스를 제공한다. 이 서비스는 목적지로의 애플리케이션 계층 메세지 전달 보장과 흐름제어를 포함한다. 또한 TCP는 긴 메시지를 짧은 메시지로 나누고 혼잡제어 기능을 제공하여 네트워크가 혼잡할 때 출발지의 전송 속도를 줄이도록 한다.
- UDP 프로토콜은 애플리케이션에게 비연결형 서비스를 제공한다. 이 서비스는 신뢰성, 흐름제어, 혼잡제어를 제공하지 않는 아주 간단한 서비스이다. 트랜스포트 계층 패킷을 세그먼트(Segment)라고 부른다.

 

③ Network
- 인터넷의 네트워크 계층은 한 호스트에서 다른 호스트로 데이터그램을 라우팅하는 책임을 진다. 인터넷의 네트워크 계층은 두 가지 중 요소를 갖는다. 이 계층은 어떻게 동작하는지를 정의하며 종단 시스템과 라우터가 이 필트에 어떻게 동작하는지를 정의하는 프로토콜을 갖고 있다. IP 프로토콜이다. 오직 하나의 IP 프로토콜을 가지고 있고, 네트워크 계층을 가진 모든 인터넷 요소는 IP프로토콜을 수행해야만 한다. 또한 인터넷 네트워크 계층은 출발지와 목적지 사이에서 데이터그램(Datagram)이 이동하는 경로를 경정하는 라우팅 프로토콜을 제공한다.

 

④ link
- 네트워크 라우팅 경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해, 네트워크 계층은 링크 계층 서비스에 의존해야 한다. 링크 계층에서 제공하는 서비스는 그 링크에서 채용된 특정 링크 계층 프로토콜에 의해 결정된다. 링크 계층의 예로는 Ethernet 과 Point-to-Point Protocol 프로토콜을 들 수 있다. 링크 계층의 패킷을 프레임(Frame)이라고 한다.

 

⑤ Physical
- 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 역할을 한다. 이 계층의 프로토콜들은 링크에 의존하고 더 나아가 링크의 실제 전송매체에 의존한다.

 

 

3) ISO/OSI Reference Model
- Application, Presentation, Session, Transport, Network, link, Physical

 

① Application
- 애플리케이션 층은 OSI 모델에서 유저와 가장 가까운 층이다. 이 계층은 OSI의 다른 어떤 계층에도 서비스를 제공하지 않는다는 점에서 다른 계층과 다르다. 이 계층에는 스프레드 쉬트, 워드 프로세싱 등이 속한다.

 

② Presentation
- 프리젠테이션 층은 한 시스템의 애플리케이션에서 보낸 정보를 다른 시스템의 애플리케이션 층이 읽을 수 있도록 하는 층이다.

 

③ Session
- 세션 층은 애플리케이션간에 세션을 구축하고 관리하며 종료시키는 역할을 하는 층이다. 세션 층은 프리젠테이션 층 사이의 대화를 동기 시키며 데이터 교환을 관리한다.

 

④ Transport
- 애플리케이션, 프리젠테이션, 그리고 세션 층이 애플리케이션에 관련되어 있다면 하위의 네 계층은 데이터 전송에 관련되어 있다. 트랜스포트 층은 데이터 전송 서비스를 제공하는 층이다. 즉 인터네트워크 상에서 얼마나 신뢰성 있는 데이터 전송이 이루어지는가 등의 문제에 트랜스포트 층이 관련되어 있다. 신뢰성 있는 서비스를 제공하기 위해 트랜스포트 층은 가상 회로의 구축, 유지 및 종료, 전송 오류 검출 및 복구 그리고 정보 흐름 제어의 절차를 제공한다.

 

⑤ Network
- 네트워크 층은 다른 장소에 위치한 두 시스템간에 연결성과 경로 선택을 제공한다. 라우팅 프로토콜이 서로 연결된 네트워크를 통한 최적 경로를 선택하며 네트워크 층의 프로토콜은 선택된 경로를 따라 정보를 보낸다.

 

⑥ link
- 데이터 링크 층은 물리적 링크를 통한 신뢰성 있는 데이터 전송을 제공한다. 이 계층은 물리적 어드레싱, 네트워크 토폴로지, 회선 사용 규칙, 오류 검출, 프레임 전달 그리고 흐름 제어 등에 관계한다.

 

⑦ Physical
- 물리 층은 시스템간에 물리적 링크를 작동시키거나 유지하며 전기, 기계, 절차 그리고 기능적 측면의 문제들을 정의한다.

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

2. Malware의 의미를 설명하고 Spyware, Worm, Virus의 특징을 공통점과 차이점으로 분류하고 실례를 들어 설명하시오.

 

1) Malware(malicious software); 말웨어
- 멀웨어는 해악을 끼칠 목적으로 개발된 프로그램이나 파일을 총칭한다. 따라서, 컴퓨터 바이러스, 웜, 트로이 목마 등이 이에 포함될 수 있다.

 

 

2) 스파이웨어(Spyware)
- 스파이웨어는 컴퓨터에 설치되어 사용자의 인지 없이 사용자의 정보를 수집해가는 악성 소프트웨어를 말한다. 이런 경우 ID를 도용 당하거나 은행 비밀번호나 신용카드 정보등의 중요 정보 분실 또는 각종 회사 기밀 유출 등의 결과를 낳을 수 있다. 스파이웨어는 과거 일부 개개인에 의해 사용된 것과는 달리 최근에는 조직적으로 범죄에 이용되고 있다.

 

 

3) 웜(Worm)
- 스스로를 복제하는 컴퓨터 프로그램이다. 컴퓨터 바이러스와 비슷하다. 바이러스가 다른 실행 프로그램에 기생하여 실행되는 데 반해 웜은 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않다. 웜은 종종 컴퓨터의 파일 전송 기능을 착취하도록 설계된다. 컴퓨터 바이러스와 웜의 중요한 차이점은 바이러스는 스스로 전달할 수 없지만 웜은 가능하다는 점이다. 웜은 네트워크를 사용하여 자신의 복사본을 전송할 수 있으며, 어떠한 중재 작업 없이 그렇게 할 수 있다. 일반적으로 웜은 네트워크를 손상시키고 대역폭을 잠식하지만, 바이러스는 컴퓨터의 파일을 감염시키거나 손상시킨다. 바이러스는 보통 네트워크에 영향을 주지 않으며 대상 컴퓨터에 대해서만 활동한다.

 

 

4) 바이러스(Virus)
- 바이러스는 일종의 소프트웨어로 일반적으로 악성이며, 스스로 번식해 컴퓨터와 컴퓨터 사이로 퍼져 나간다. 또한, 사용자 시스템에 손상을 입히거나 중요데이터 손실 또는 스파이웨어나 루트킷과 같은 다른 말웨어를 침투하게 한다.
- 바이러스 감염이나 유포를 막으려면 안티바이러스 프로그램을 설치하고 항상 최신 버전으로 업데이트해야하며, OS도 항상 최신 보안 패치로 업데이트해야 한다. 사용자는 정상적으로 보이는 프로그램들이 말웨어와 같이 설치될 수 있기 때문에 항상 자신이 다운로드 받는 프로그램들이 신뢰할 수 있는 것인지를 반드시 확인해야 한다.

 

 

 

 

3. DoS에 대해 설명하고 실제 DoS가 발생한 예를 찾아 기술하시오.

 

1) DoS(Denial of Service)
Dos도 사용자들에게 피해를 준다는 점에서 크래킹의 한 종류라고 할 수 있지만, 요즘 인터넷으로 배포되는 공격 프로그램을 이용하면 전문 지식이 없어도 공격이 가능하기 때문에 그 방법이 비교적 간단하지만 그 피해 범위와 정도는 매우 광범위하다. DoS의 주요 공격 대상은 시각적인 서비스를 하는 웹서버나 라우터, 네트워크같은 기반 시설이다.
DoS는 한 사용자가 시스템의 리소스를 독점하거나 모두 사용, 또는 파괴함으로써 다른 사용자들이 이 시스템의 서비스를 올바르게 사용할 수 없도록 만드는 것을 말한다. 이런 의미에서 시스템의 정상적인 수행에 문제를 일으키는 모든 행위를 DoS라 할 수 있다.
그런데 이런 공격이 일어나는 방법은 매우 다양하다. 이 공격은 고의적으로 발생할 수 있지만 사용자의 의도와는 무관하게 발생할 수도 있으며, 공격자는 서비스 요구를 통해 서비스 중단을 초래할 수 있다. 예를 들어 공격자가 1초당 10개의 메일을 받을 수 있는 서버에 초당 20개의 메일을 보내면 공격 대상이 된 메일 서버는 메일을 제대로 전송하지 못할 것이며, 20개보다 훨씬 많은 메일을 보낼 경우엔 서버가 다운될 수도 있다.
DDoS 공격은 DoS의 또 다른 형태로, 인터넷에 연결된 일련의 시스템들을 이용해 단일 사이트에 대한 플러드 공격을 시도하는 것이다. 해커들이 일단 취약한 인터넷 시스템에 대한 액세스에 성공하면 침입한 시스템에 소프트웨어를 설치하고 이를 실행시켜 원격에서 공격을 개시한다. 최근 DDoS 공격이 민간 기업이나 공공기관 시스템에서 실행되고 있지만, 해커들은 대학 네트워크의 개방적인 분산 속성 때문에 대학 네트워크를 실행 사이트로 자주 사용하는 경향이 있다.

 

 

2) DoS 공격 유형
DoS 공격은 직접적으로 사용자 계정 또는 시스템의 데이터를 장악하기 위한 방법이라기 보다는 계획적으로 컴퓨터 자원들을 다운시키거나 ICMP, UDP, TCP의 데이터 패킷들을 사용해 서버에 많은 양의 네트워크 트래픽을 전송함으로서, 사용자들이 사이트에 접근하지 못하도록 자원을 고갈시키는 유형에서부터 non-RFC-Compliant 패킷을 이용해 운영 시스템의 동작을 멈춰버리게 하는 유형까지 다양한 방법이 존재한다.

 

① SYN Flood 공격
서버에 수천 개의 TCP 접속(SYN) 요청 메시지를 보낸다. 이 때 이 패킷내부의 소스 IP 주소를 속이거나, 인터넷 상에서 사용하지 않는 IP 주소값으로 변형한다. 그러면 서버는 새로운 접속을 맺기 위해 실제로는 존재하지 않거나 동작하지 않는 IP 주소값으로 SYN/ACK로 응답을 한다. 서버는 SYN/ACK 응답을 보낸 클라이언트로부터 ACK가 올 때까지 기다리게 되는데, 서버는 ACK 메시지를 받지 못하게 된다. 이렇게 되면 서버는 ACK 받을 때까지 버퍼와 같은 자원을 계속 종료하지 않고 열어두게 되는데, 계속 누적될 경우 결국은 시스템이 다운되거나 서비스를 중단하는 사태가 발생하는 것이다.

 

② Smurfing 공격
Smurfing 공격은 그 광범위한 효과로 인하여 가장 무서운 DoS 방법 중에 하나이며, IP와 ICMP의 특징을 이용한다. 브로드캐스트 핑 요구는 네트워크 주소나 네트워크 브로드캐스트 주소에 직접 보내질 수 있다. 만약 192.168.0.0/24 범위를 가진 네트워크가 있다면, 네트워크 ID는 192.168.0.0될 것이고 브로드캐스트용 주소는 192.168.0.255가 될 것이다. 브로드캐스트는 전형적으로 지정된 범위 내에서 조정된 각각의 주소 없이 무엇이 활동하는지 진단할 목적으로 사용된다.
Smurfing 공격은 직접적인 브로드캐스트와 세 가지 구성요소인 공격자, 증폭 네트워크와 표적을 최대한 이용한다. 공격자는 증폭 네트워크의 브로드캐스트 주소로 공격 서버가 요구하는 것처럼 패킷들의 원본 주소를 위조하여 ICMP ECHO 패킷을 전송하고, ICMP ECHO 패킷을 수신한 증폭 네트워크 내의 모든 시스템은 공격 서버에 응답을 하게 된다. 만일 공격자가 브로드캐스트 핑에 응답할 100개의 시스템을 가진 증폭 네트워크에 하나의 ICMP 패킷을 보내게 되면, 공격자는 100만큼의 효과로 DoS 공격을 할 수 있다.
이 공격과 상이한 형태의 Fraggle 공격이라는 것이 있는데, Fraggle 공격은 방식은 Smurfing 공격과 비슷하지만 ICMP 대신 UDP를 사용한다는 것이 다른 점이다. 공격자들은 증폭 네트워크 내의 브로드캐스트 주소로 전형적인 포트 7(Echo)을 이용해 가짜 UDP 패킷을 전송한다. 에코가 가능한 네트워크 내의 각각의 시스템은 엄청난 트래픽을 생성하고 공격 서버로 응답을 보게 된다. 만약 증폭된 네트워크 내의 시스템에서 에코가 가능하지 않더라도 ICMP 도달 불능 메시지가 여전히 대역폭을 소모하게 될 것이다.
Smurfing 공격을 방어하기 위해서는 직접적인 브로드캐스트를 경계 라우터에서 사용할 수 없게 만들어야 한다.

 

③ 응용 프로그램 서비스 DoS 공격
대부분의 공격들은 희생자의 서버에 있는 낮은 레벨의 자원에 초점을 맞추지만, 거의 모든 프로그램상의 버그는 DoS 취약점을 야기시킬 수 있다는 사실을 명심해야한다. IIS와 같은 응용프로그램 도구는 특히 이런 공격에 취약하다.
2001년 중반 IIS 5.0를 사용하는 시스템에서는 WebDAV의 잘못된 요청으로 인해 IIS가 DoS를 일으킬 수 있는 취약성이 Georgi Guninski에 의해 처음 발견되었다.
MS에서는 WebDAV Propfind DoS에 대한 패치를 마련하였지만, 기본적으로 WebDAV기능을 사용하지 않을 것을 권하고 있다. 반드시 WebDAV가 필요하지 않다면 IIS의 모든 확장된 기능들을 사용하지 않도록 해야만 한다. 이런 한가지 예방법을 통해 현재 그리고 나중에 발생할 수도 있는 많은 보안 취약점들로부터 시스템을 보호할 것이다.

 

④ LAN기반 DoS 공격
상당수의 시스템이 웹서비스를 하면서 불필요한 프로토콜 및 서비스를 설치해 놓은 경우가 많다. 이는 LAN 기반의 DoS 공격뿐만 아니라 프로토콜의 고질적인 문제로 인해 외부의 DoS 공격 및 내부 네트워크의 정보가 외부로 유출될 수 있는 위험성이 있다.
대체로 윈도우 네트워킹의 핵심역할을 하는 NetBios 프로토콜을 사용한다. NetBios의 고질적인 문제점은 신뢰성이 없고, 인가되지 않는 서비스에 의존한다는 점이다.
예를 들어, NetBios Name Service(NBNS)는 NetBios 이름에 대한 IP주소를 찾아주지만 반대로 쉽게 속일 수 있기 때문에, NetBios 이름에 대한 등록을 요청하거나 특정 호스트에 name release 패킷을 보내 네트워크 상에서 적법한 클라이언트의 접속을 끊게 만들 수 있다. 다시 말해 이런 패킷을 수신한 클라이언트는 공유자원 접근, 도메인 인증 등을 포함하여 NetBios 네트워크에 참여할 수 있는 능력을 잃게 된다.
대부분의 NetBios 관련 문제와 마찬가지로, 이런 공격을 막기 위해서는 웹서버의 성능이나 보안성을 고려했을 때 불필요한 프로토콜 및 서비스(특히 NetBios와 관련된)는 반드시 제거되어야 한다.

 

 

 

 

4. Voice over IP에 대해 설명하시오. (서비스 개념, 구조, 구성요소 등)

 

1) Voice over IP (Voice over Internet Protocol)
기존부터 사용되고 있는 데이터통신용 패킷망을 인터넷폰에 이용하는 것으로, VoIP(Voice over Internet Protocol)라고 한다. 음성 데이터를 인터넷 프로토콜 데이터 패킷으로 변화하여 일반 전화망에서의 통화를 가능하게 해주는 통신서비스 기술이다. 케이블을 통하여 여러 명이 동시에 사용할 수 있고 확장성도 뛰어나며 기존 전화에 비하여 요금도 훨씬 저렴하다.
프로토콜은 H.323와 SIP·MGCP·MEGACO가 있는데, 우리나라에서 사용되는 VoIP 장비는 대부분 H.323으로 되어 있다. 세계기술표준은 VoIP를 비롯해 VoFR·VoATM 등 3가지가 있다. 구축하는 방법은 다이얼 패드처럼 단순히 컴퓨터만 있으면 되는 경우도 있고, 시스코(CISCO) 등 전문 네트워크 장비회사에서 판매하는 IP전화기나 전용라우터 등을 사용할 수도 있다.
VoIP는 원래의 IP 기능에 더하여, 패킷들이 적시에 도착하도록 지원하기 위해 RTP를 사용한다. 공중 네트웍을 사용하면, 현재 서비스 품질(QoS)을 보장하기에 어렵다. 독자적인 기업이나, 인터넷 전화서비스 공급자 (ITSP)에 의해 관리되는 사설 네트웍을 사용하면 더 나은 서비스가 가능하다. 빠른 패킷 전달을 보장하기 위해 넷스피크라는 장비 제작자에 의해 사용되는 기술은, 상대편과 TCP 소켓 접속을 확립하기 전에 공중 네트웍에 접속되어 있는 모든 네트웍 게이트웨이에 핑을 해서, 그 결과를 토대로 가장 빠른 경로를 선택하는 것이다.

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

5. UDP와 TCP에 대해 설명하고 Socket Programming 관점에서 차이점을 설명하시오.

 

1) UDP(User Datagram Protocol)
최상의 data 스트림 서비스(reliability)를 요구하지 않는 Application을 위한 프로토콜. 속도 빠르고 에러처리에 여유가 있는 전송에 사용. 확실한 수신을 보장하진 않음.
IP를 사용하는 네트웍 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜이다. UDP는 TCP의 대안이며, IP와 함께 쓰일 때에는 UDP/IP라고 표현하기도 한다. TCP와 마찬가지로 UDP도 한 컴퓨터에서 다른 컴퓨터로 데이터그램이라고 불리는 실제 데이터 단위를 받기 위해 IP를 사용한다. 그러나 UDP는 TCP와는 달리, 메시지를 패킷(데이터그램)으로 나누고, 반대편에서 재조립하는 등의 서비스는 제공하지 않으며, 특히 도착하는 데이터 패킷들의 순서를 제공하지 않는다. 이 말은 UDP를 사용하는 응용프로그램은, 전체 메시지가 올바른 순서로 도착했는지에 대해 확인할 수 있어야한다는 것을 의미한다. 교환해야할 데이터가 매우 적은 네트웍 응용 프로그램들은 처리시간 단축을 위해 TCP 보다 UDP를 더 좋아할 수 있다. 일례로 TFTP는 TCP 대신에 UDP를 사용한다.
UDP는 IP 계층에서 제공되지 않는 두 개의 서비스를 제공하는데, 하나는 다른 사용자 요청을 구분하기 위한 포트 번호와, 도착한 데이터의 손상여부를 확인하기 위한 체크섬 기능이다.
Connectionless : TCP는 서로 통신을 하기전에 상대방을 확인하는 절차를 가짐으로써, session(통신선로)를 맺는 작업을 하며, 연결된 session 을 통해서 데이타의 흐름이 이루어진다. 그러나 UDP 는 이러한 session 을 만들기 위한 작업을 하지 않고, 그냥 보내고 받기만을 한다. 그러므로 우리가 UDP 서비스를 하는 서버로 메시지를 보냈다고 하더라도, 메시지가 실제로 도착되었는지는 알수가 없다. 데이타는 보내질수도 있고 그렇지 않을수도 있다.
Unreliable : UDP는 신뢰성 보장을 위한 어떠한 장치를 가지고 있지 않다. UDP로 전송된 패킷은 순서가 뒤바뀔수도 있으며, 중간에 패킷이 손실될수도 있다. 프로토콜 차원에서 패킷의 순서가 뒤바뀌었는지, 패킷이 손실되었는지 알수 있는 방법은 없다. UDP 패킷에 신뢰성을 주기 위해서는 application 차원에서 직접 코딩을 해주어야만 한다. 보통은 패킷을 만들때 데이타 헤더를 따로 만들어서 일련번호등을 넣어서 서버측에 보내고 서버측에서는 이에 대한 응답을 보내는 방식을 이용하여 UDP 패킷에 신뢰성을 부여할 수 있다.

 

 

2) TCP(Transmission Control Protocol)
인터넷에서 신뢰성있는 전송 서비스를 제공하기 위한 프로토콜.
인터넷상의 컴퓨터들 사이에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜이다. IP가 실제로 데이터의 배달처리를 관장하는 동안, TCP는 데이터 패킷을 추적 관리한다. 예를 들면, HTML 파일이 웹 서버로부터 사용자에게 보내질 때, 서버 내에 있는 TCP 프로그램 계층은 파일을 여러 개의 패킷들로 나누고, 패킷 번호를 붙인 다음, IP 프로그램 계층으로 보낸다. 각 패킷이 동일한 수신지 주소(IP주소)를 가지고 있더라도, 패킷들은 네트웍의 서로 다른 경로를 통해 전송될 수 있다. 다른 한쪽 편(사용자 컴퓨터 내의 클라이언트 프로그램)에 있는 TCP는, 각 패킷들을 재조립하고, 사용자에게 하나의 완전한 파일로 보낼 수 있을 때까지 기다린다.
TCP는 연결지향 프로토콜이라고 알려져 있는데, 이것은 메시지들이 각단의 응용 프로그램들에 의해 교환되는 시간동안 연결이 확립되고 유지되는 것을 의미한다. TCP는 IP가 처리할 수 있도록 메시지를 여러 개의 패킷들로 확실히 나누고, 반대편에서는 완전한 메시지로 패킷들을 재조립할 책임이 있다.

- Connection oriented : application은 먼저 목적지에 연결을 요구하고 data전송을 위해 그 연결을 사용한다.
- Point to Point : 정확히 두 종단을 가진다. TCP는 Virtual Circuit으로 제공
- Full duplex : 데이터의 양방 전송 보장. 양방에서 들어오는 데이터 버퍼링 지원
- 20byte의 헤더 : 소스 포트 넘버, 데스티네이션 포트 넘버, 시퀀스 넘버, ACK 넘버, 기타 헤더 정보, Checksum 등의 정보를 담고 있다.
- Reliable data transfer : Data 손실, 중복되지 않고, 순서에 어긋나지 않도록 보장
  = 패킷 손실, 재전송 : 자료 전송시 타이머를 시작 일정시간이 지나도록 확인 없으면 재전송
  = Buffer, Flow Contrl, Window : Flow control을 위해 Window 매커니즘 사용

 

 

3) Socket Programming
인터넷 프로토콜을 이용하는 네트워크 프로그램을 개발하기 위한인터페이스를 소켓이라 한다. 응용프로그램은 소켓을 이용하여 서로간의 통신기능을 이용할 수 있다.

 

 

 

 

6. Multiplexing과 Demultiplexing에 대해 설명하시오.

 

1) Multiplexing(다중화)
- 프로세스가 보내는 데이터를 모아 헤더를 붙이고 네트워크 레이어로 Segment를 보낸다.

 

 

2) Demultiplexing(역다중화)
- Muxing된 수신 Segment를 분할해 해당 프로세스로 보내기를 한다.

 

 

3) 다중화의 궁극적 목적은 제한된 자원의 공유에 있으며, 이러한 공유의 개념은 프로세스 단위에서도 쉽게 찾아 볼 수 있다. 일반적으로 호스트에는 여러 프로세스가 존재하며, 이때 IP 주소는 NIC(Network Interface Card)당 하나만 할당 된다. 이와 같은 상황에서 IP 주소를 공유하는 방법, 호스트의 프로세스들이 통신을 할 수 있는 방법은 다중화와 밀접하게 연관되며, 또한 다중화로써 해결 될 수 있다. IP를 보유한 송신 호스트에서 여러 프로세스로부터 데이터를 모아서 헤더를 첨가하여 네트워크계층으로 세그먼트를 보내며(다중화), 수신지에서는 다중화되어 수신된 세그먼트를 분할하여, 해당 수신 프로세스에게 보낸다(역다중화). 이러한 다중화, 역다중화는 내부에 추상적인 위치추적자(abstract locator)인 포트(port)를 두고, 필요한 프로세스에 포트를 할당하여 이루어진다.

 

 

 

 

 

 

 

지금까지 정보통신공학 전공과목 중 하나인 인터넷 프로토콜을 공부하면서 작성했던 과제의 문제와 정답을 정리해보았다.

 

 

 

 

도움이 되셨다면 로그인 없이 가능한

아래 하트♥공감 버튼을 꾹 눌러주세요! 

 

 

 

 

 

 

 

 

 

 

반응형








공유하기

facebook twitter kakaoTalk kakaostory naver band