전체 글

Git: https://github.com/junxtar
1. 소켓에 이름을 부여하는 방법은 프로토콜 종류에 따라 다양하다. 프로그래밍 환경에서는 주로 두 개의 주소 체계가 사용된다. 즉, 호스트 내부에서 실행되는 프로세스 사이의 통신을 지원하는 AF_UNIX 와 서로 다른 호스트에서 실행되는 프로세스 사이의 통신을 지원하는 AF_INET가 있다. 2. 인터넷 주소 체계에서 사용되는 구체인 struct sockaddr_in 의 sin_family 필드에는 AF_INET이 지정되어야 한다. 또한 소켓의 주소 역할을 하는 호스트의 IP 주소와 포트 번호는 각각 sin_addr 필드와 sin_ port에 보관된다. 3. bind (sock, struct sockaddr &addr, sizeof(addr)); 4. 소켓의 유형 중에서 SOCK_STREAM은 연결형 서..
1. 세션 계층의 주요 기능인 동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통의 처리시점, 즉 동기점을 지정하기 위해 사용한다. 동기점을 설정하는 이유는 메시지 전송 과정에서 발생할 수 있는 오류를 복구하기 위해서이다. 메시지 전송 과정을 의미하는 대화 단계에서 오류가 발생하면 이전에 설정한 동기점 까지는 복구할 수 있다. 2. 세션 계층에서는 두 응용 프로그램의 대화를 관리하기 위하여 토큰이라는 특수 메시지를 사용한다. 이를 보유했다는 것은 해당 토큰에 부여된 특정 권리를 배타적으로 소유한다는 의미이다. 3. 전송 과정에서 오류가 발생하면 특정 동기점으로 돌아가 복구하는 기능이 실행되는데 이와 같은 일련의 복구 과정을 재동기라 한다. 4. 세션 연결 구조와 관련하여 단일 세션을 지원하는 서버 환..
1. UDP 프로토콜의 헤더 구조에는 데이터의 순서 번호 기능이 제공되지 않으므로 데이터그램 분실 여부를 확인할 수 없다. 또한 데이터그램 도착 순서가 변경되는 오류를 해결하지 못하는 원인도 이 기능이 존재하지 않기 때문이다. 2. UDP 프로토콜은 슬라이딩 윈도우 프로토콜과 같은 흐름 제어 기능을 제공하지 않으므로 버퍼 오버플로에 의한 데이터 분실 오류가 발생할 수 있다. 3. 인터넷 환경에서 실시간 서비스를 제공하는 가장 현실적인 방법 중 하나는 UDP에 순서번호 기능을 추가하는 것이다. 이러한 프로토콜의 대표적인 예가 실시간 멀티미디어 데이터의 전송을 지원하는 RTP이다. 4. 실시간 데이터를 전송하는 환경에서는 지터 라는 변수가 중요한데, 이는 데이터그램의 도착 시간을 측정하였을 때 지연시간 분포..
1. 전송 계층 프로토콜은 오류 제어, 흐름 제어, 데이터 순서화 등의 기능 면에서 데이터링크 계층과 특징이 유사하다. 그러나 데이터링크 계층이 물리적인 전송 선로로 직접 연결된 호스트 사이의 데이터 전송을 담당하는 반면 전송 계층은 네트워크 끝단에 위치하는 호스트 사이의 논리적 선로를 통해 데이터를 주고 받는다. 2. 전송 계층의 기능 중에서 송신 프로세스와 수신 프로세스 사이의 전송 속도 조절 기능을 흐름제어라 하고, 수신 데이터의 내용이 깨지거나 분실되어 재전송하는 기능을 오류제어라 한다. 3.상위 계층에서 전송을 요구한 데이터 크기가 전송 계층에서 처리할 수 있는 데이터 크기보다 크면 데이터를 쪼개서 전송해야 한다. 데이터를 전송하기 전에 적합한 크기로 나누는 과정을 분할이라 하고, 반대로 수신 ..
1. 32비트의 주소 공간을 제공하는 현재의 IPv4 프로토콜에 비하여 IPv6 프로토콜은 128비트의 확장된 주소 공간을 제공하므로 수용할 수 있는 호스트 수의 제약이 대폭 줄어들었다. 2. IPv6의 Hop Limit 필드는 IPv4 프로토콜의 Time To Live 필드와 동일한 역할을 수행한다. 패킷이 라우터에 의해 중개될 때 마다 값이 감소되며, 0이 되면 해당 패킷은 네트워크에서 사라진다. 3. IPv6의 Flow Label 필드는 음성이나 영상 데이터처럼 실시간 서비스가 필요한 응용 환경에서 사용되는데, 이 필드를 지원하지 않는 호스트나 라우터에서는 IPv6 패킷을 생성할 때 반드시 0으로 지정해야한다. 4. 터널 구간을 지나는 과정에서도 라우팅 처리가 필요하므로 IP 프로토콜을 이용해야 한..
1. 네트워크 계층의 기본 기능은 송수신 호스트 사이의 패킷 전달 경로를 선책하는 라우팅이다. 또한 네트워크의 특정 지역에 트래픽이 몰리는 현상을 다루는 혼잡 제어와 라우터 사이의 패킷 중개 과정에서 다루는 패킷의 분할과 병합도 계층 3에서 처리해야한다. 2. 라우팅의 동작 방식은 두 종류로 나눌 수 있다. 송수신 호스트 사이에서 패킷 전송이 이루어지기 전에 경로 정보를 라우터에 미리 저장하여 중개하는 방식을 정적 라우팅이라 하고, 라우터에서 사용하는 경로 정보를 네트워크 상황에 따라 적절하게 변경하는 방식을 동적 라우팅이라 한다. 3. 라우터 초기화 과정에서 가장 먼저 할 일은 주변 라우터의 경로 정보를 파악하는 것이다. 각 라우터는 주변에 연결된 라우터에 초기화를 위한 HELLO 패킷을 전송해 경로 ..
1. 데이터 링크 계층에서 두 개의 호스트가 통신하려면 두 호스트를 일대일 형식의 점대점 방식으로 연결해야 한다. 송신 호스트에서 전송한 프레임은 수신 호스트에 라우팅 과정 없이 전달된다. 2. 데이터 링크 계층은 신뢰성 있는 논리 선로를 제공하기 위한 오류 제어 방식으로 재전송 기법을 사용한다. 이는 송신 호스트가 전송한 프레임에 오류가 발생하면 송신 호스트가 데이터를 다시 전송하여 오류를 복구하는 방식이다. 3. 데이터 링크 계층에서 사용하는 프레임에는 세 종류가 있다. 정보 프레임은 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용된다. 수신 호스트는 송신 호스트에 응답해야 하는데, 데이터를 제대로 받았을 경우에는 긍정응답 프레임을 회신하고 데이터가 변형되었을 경우에는 부정응답..
1. LAN 환경에서 계층 2 기능에 대한 표준안을 다루는 IEEE 802 시리즈는 LCC 계층뿐 아니라 MAC계층에 대한 다양한 표준안을 정의하고 있다. 2. LAN 환경에서 네으퉈크 자원을 효율적으로 활용하기 위해 데이터 링크 계층을 둘로 나누어 처리한다. OSI 7계층 모델에서 정의한 데이터 링크 계층의 기본 기능은 주로 LCC 계층에서 다루고, 물리적 전송 선로의 특징과 매체 간 연결 방식에 따른 제어 부분은 MAC 계층에서 처리한다. 3. 다중 접근 채널 방식을 이용해 공유 매체에 프레임을 전송하는 방식에서는 데이터 충돌 가능성이 늘 존재한다. 이때 충돌 허용 방식의 대표적인 예는 이더넷으로 알려진 CSMA/CD 이다. 충돌 회피 방식의 간단한 예는 각 송신 호스트에 서로 다른 전송 시간대를 지..
Junxtar
Junxtar의 개발일지