목록K 개발자 (145)
K 개발자
세션 계층 응용 환경에서 전송 계층이 제공하는 서비스를 손쉽게 이용하게 하려면 사용자의 논리적 관점을 고려하여 단순한 사용자 인터페이스를 제공해야 한다. 세션 계층Session Layer은 이러한 필요에 따라 도입되었다. 토큰 종류 세션 계층은 두 응용 프로세스의 대화를 관리하려고 토큰Token이라는 특수 메시지를 사용한다. 토큰을 보유한다는 것은 해당 토큰에 부여된 특정한 권리를 배타적으로 소유한다는 의미이다. 데이터 토큰 데이터 토큰Data Token은 데이터를 전송할 수 있는 권리를 제공한다. 해제 토큰 해제 토큰Release Token은 통신 양단 간의 연결 해제 과정을 제어하기 위해 사용한다. 동기 토큰 동기 토큰Synchronization Token은 세션 연결을 사용하는 과정에서 동기 처리가..
RTP 프로토콜 TCP와 UDP를 근간으로 인터넷 환경에서 실시간 서비스를 제공하는 가장 현실적인 방법 중 하나는 UDP에 데이터그램의 순서 번호 기능을 추가하는 것이다. 이러한 프로토콜의 대표적인 예가 실시간 멀티미디어 데이터의 전송을 지원하는 RTPReal Time Protocol이다. RTP는 유니캐스팅뿐 아니라 멀티캐스팅도 지원한다. RTP의 특징은 다음과 같다. 불규칙하게 수신되는 데이터의 순서를 정렬하기 위해 타임스탬프Timestamp 방식을 사용한다. 프로토콜의 동작이 응용 프로그램의 라이브러리 형태로 구현되는 ALFApplication Level Framing 방식을 사용하기 때문에, 프로토콜 내부에 위치하는 버퍼의 크기를 각 응용 프로그램마다 별도로 관리하기가 용이하다. 따라서 응용 환경..
UDP 헤더 구조 UDPUser Datagram Protocol는 인터넷에서 사용하는 프로토콜 중 구조가 가장 간단하다. 하부의 IP 프로토콜을 이용해 비연결형 서비스를 지원하는 UDP는 작지만 빠른 전송이 가능하며, 다음과 같은 특징이 있다. 비연결형 서비스를 제공한다. 헤더와 전송 데이터에 대한 체크섬 기능을 제공한다. Best Effort 전달 방식을 지원한다. UDP는 상위 계층에서 받은 데이터를 IP 프로토콜에 전달하지만, 전송한 데이터그램이 목적지까지 제대로 도착했는지 확인하지 않는다. 따라서 TCP보다 신뢰성이 떨어져 일반 응용 프로그래머들 사이에서는 덜 선호되고 있다. 하지만 프로토콜을 처리하는 기능이 작아 TCP보다 데이터 처리가 빠르므로 데이터 전송 시간에 민감한 응용 환경에서는 UDP..
연결 설정 TCP를 사용하는 프로세스가 가장 먼저 실행하는 연결 설정은 3단계 설정Three-Way Handshake 방식이다. A 프로세스가 연결 설정을 요구하고, B 프로세스가 이를 수락하는 형식이다. 먼저 A 프로세스는 TCP 헤더의 SYN 플래그를 지정한 세그먼트를 전송함으로써 연결 설정을 요구한다. 순서 번호 10번은 임의로 설정한 것이다. 연결 설정 요구를 받은 B 프로세스가 연결을 수락하려면 이에 대한 긍정 응답을 해야 한다. 이를 위해 SYN과 ACK 플래그를 지정해 연결에 대한 긍정 응답을 표시하였다. SYN 플래그가 지정한 세그먼트에는 전송 데이터가 포함되지 않지만 순서 번호는 1이 증가한다. 따라서 SYN 세그먼트의 순서 번호 10에 1을 더한 11번을 Acknowledgement N..
TCP 헤더 구조 TCPTransmission Control Protocol는 IP 프로토콜 위에서 연결형 서비스를 지원하는 전송 계층 프로토콜로, 인터넷 환경에서 기본으로 사용한다. TCP에서 제공하는 주요 기능은 다음과 같다. 연결형 서비스를 제공한다. 전이중Full Duplex 방식의 양방향 가상 회선을 제공한다. 신뢰성 있는 데이터 전송을 보장한다. TCP는 데이터를 세그먼트Segment라는 블록 단위로 분할해 전송한다. 전송되는 블록의 크기는 네트워크 부하 정도, 윈도우 크기 등의 영향을 받으며, 가변 크기를 지원한다. TCP는 세그먼트를 하나의 단위로 간주하여 순서 번호를 관리하지 않는다. 대신 세그먼트에 실려 전송되는 데이터의 바이트 개수를 순서 번호에 반영한다. TCP의 세그먼트는 위와 같..
전송 계층의 주요 기능 데이터 링크 계층에서 사용하는 물리적인 선로는 단순한 반면 컴퓨터 네트워크의 구조는 상대적으로 복잡하다. 따라서 전송 계층 프로토콜을 설계하는 과정에서는 다음과 같이 여러 기능을 고려해야 한다. 흐름 제어 전송 계층의 서비스를 이용해 연결을 설정하면 양 끝단의 호스트에서 실행되는 네트워크 프로세스가 데이터를 주고받을 수 있다. 이 과정에서 필요한 주요 기능 중 하나가 흐름 제어Flow Control이다. 수신 프로세스가 송신 프로세스의 전송 속도보다 느리게 데이터를 수신하면 버퍼 용량이 초과하여 데이터를 분실할 수 있다. 이 경우에 송신 프로세스는 타임아웃 기능을 통해 재전송 과정을 수행하므로 전체 네트워크의 전송 효율이 점점 떨어진다. 이론적으로 흐름 제어 기능은 수신 호스트가 ..
ARP 프로토콜 네트워크 환경에서 임의의 호스트가 다른 호스트에 데이터를 전송하려면 수신 호스트의 IP 주소뿐 아니라, MAC 주소도 알아야 한다. 수신 호스트의 IP 주소는 보통 응용 프로그램 사용자가 프로그램을 실행하는 과정에서 직접 입력하므로, IP 주소로부터 수신 호스트의 MAC 주소를 얻는 작업이 추가로 필요하다. MAC 주소 IP 프로토콜 헤더에서 필요한 송수신 호스트의 IP 주소와 함께 MAC 계층에서도 송수신 호스트의 MAC 주소가 필요하다. 송신 호스트의 IP 주소는 자신의 파일시스템에 보관되어 있으므로 손쉽게 구할 수 있다. 또한 수신 호스트의 IP 주소는 일반 사용자가 접속하고자 하는 호스트의 IP 주소를 지정해준다. 사용자는 일반적으로 도메인 이름을 입력하는데, 도메인 이름은 DNS..
IP 터널링 무선 단말기 사용자가 급격하게 늘면서 인터넷 산업에서도 무선 인터넷 사용자에게 이동 서비스를 제공하기 위한 환경을 구축할 필요성이 생겼다. 무선 호스트가 이동할 때 발생하는 데이터 경로 문제를 해결하기 위한 이동 IP 프로토콜의 기본 동작 원리를 설명한다. 먼저 이동 호스트의 위치가 바뀌면 새로운 위치를 관장하는 포린 에이전트Foreign Agent FAnew로부터 COACare of Address를 얻는다. 이 주소는 이동 호스트의 홈 에이전트Home Agent HA에 등록되어 FAnew와 HA 사이에 터널Tunnel을 형성하는 데 사용된다. HA로 라우팅된 패킷을 이동 호스트에 전달하려면 새로 형성된 터널을 통해 FAnew로 전달해야 한다. 이동 호스트에는 고유 IP 주소인 홈 주소Hom..