공부한 기록/네트워크 통신 15

네트워크 프로그래밍

네트워크 network 네트워크란? 서로 데이터를 주고 받을 수 있는 컴퓨터 및 장치들의 집합이다. 네트워크 내에서 통신의 주체가 되는 장비를 ‘노드(node)’라고 한다. 노드는 컴퓨터, 프린터, 라우터, 브릿지, 게이트웨이와 같은 네트워크 장비이기도 하다. 노드 중에서 일반적인 컴퓨터를 호스트라고 부른다. 네트워크 주소 network address 모든 네트워크 노드(장비)들은 각각의 고유한 네트워크 주소를 갖고 있다. Java 프로그래밍에서 네트워크 주소 네트워크 주소는 바이트 목록(byte[])이다. Java의 기본 숫자 타입(int, long, float)은 네트워크 주소를 저장하기에 적당하지 않다. Java의 int 타입 변수는 4바이트이지만 바이트의 순서는 big-endian이기 때문이다. ..

네트워크(11) - 전송층

전송층은 네트워크층과 응용계층 사이에 위치해 있다. 이는 네트워크층으로부터 서비스를 제공받고 응용계층에게 서비스를 제공할 의무가 있다. 전송층 서비스 전송층은 다음과 같은 서비스를 제공한다. 프로세스 대 프로세스 통신 제공 전송층 서비스를 사용하는 실행중인 프로그램이다. 메시지를 적절한 프로세스에 전달할 책임을 갖는다. 포트번호 프로세스끼리는 클라이언트/서버로 통신한다. 프로세스 통신을 위해서는 로컬호스트, 로컬프로세스, 원격호스트, 원격프로세스가 필요하다. 전송층은 프로세스 통신에서 포트번호의 역할을 한다. 로컬호스트와 원격호스트는 IP주소를 사용하고 프로세스는 포트번호를 사용한다. 소켓 주소 : 각 종단점을 연결하기 위해 필요한 주소이다. IP주소 + 포트 번호를 합해서 만든다. 흐름제어 단어 그대로..

네트워크(10) - 인터넷 제어 메시지 프로토콜 ICMP

이전에 IP 프로토콜에서는 문제점이 있었다. 신뢰성이 없고 비연결형 데이터그램을 전달하고, 최선의 노력만 하며, 오류 보고 및 수정 기능과 오류제어와 해결 매커니즘이 없다. 또한 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다. 이 모든 문제를 보완하기 위해 설계된 것이 ICMP다. ICMP의 메세지는 두 가지 유형으로 나뉜다. 오류 보고 메시지 : 라우터나 호스트가 IP패킷을 처리하는 중에 발견되는 문제를 보고한다. 질의 메시지 : 호스트나 네트워크 관리자가 다른 라우터나 호스트로부터 특정 정보를 획득할 때 사용한다. 8바이트 헤더와 가변 길이의 데이터 부분을 가지고 있다. 코드 code 필드는 메시지의 유형의 이유를 지정한다. 헤더의 나머지 부분은 각 메시지 별로 다르다. 데이터 부분은 오류와..

네트워크(9) - 인터넷 프로토콜 IP

IP는 TCP/IP 프로토콜이 사용하는 전송 메커니즘으로, 신뢰성이 없고 최선의 노력으로 전달 서비스를 제공한다. 이 말인 즉슨, 데이터 전달에 최선을 다하기는 하나 오류가 생기거나 폐기되는 것에 대해 책임을 지지 않는다는 의미다. 데이터 그램 방식의 패킷 교환망을 위해 설계된 비연결형 프로토콜이기도 하다. 네트워크층에서 경로설정, 주소지정 등의 역할을 한다. 데이터그램 IP계층의 패킷을 의미한다. 길이는 가변적이며, 헤더와 데이터 부분으로 구성되었다. 헤더는 20~60바이트이며, 경로지정과 전달에 필요한 정보를 포함하고 있다. TCP/IP에서는 4바이트 단위로 표시한다. 헤더 내 필드는 다음과 같다. 버전 VER : 4비트로 구성되었으며, IP의 버전을 표시 헤더 길이 HLEN : 4비트로 구성, 데이..

네트워크(8) - 주소 변환 프로토콜 ARP

주소 변환 논리는 주소는 호스트나 라우터가 사용하는 32비트 길이의 전세계적으로 유일한 주소다. 물리주소는 로컬 네트워크에서 만 유효한 주소이다. 하드웨어로 구현된다. 패킷을 호스트나 라우터로 전달하기 위해 논리 및 물리 주소가 필요하며, 논리 주소를 물리 주소로 변환하거나 그 반대의 행위가 필요하다. 정적 변환 : 논리와 물리 주소 연관 테이블을 생성하여 필요 시 테이블에서 검색해 찾아내는 것. 동적 변환 : 논리나 물리 주소 중 하나만 알면 프로토콜을 이용해 다른 하나를 알아내는 것이다. ARP는 논리에서 물리 주소로 변환하는 것이고 RARP는 그 반대이나 현재는 사용하지 않는다. ARP는 논리주소를 물리주소로 변환시킨다고 하였다. 이는 네트워크층에 ICMP와 함께 자리해 있다. ARP 요청은 브로드..

네트워크(7) - 유선 이더넷

근거리 통신망 LAN 지역적으로 제한된 지역에서 독립적인 장치들이 서로 통신할 수 있는 데이터 통신 시스템을 일컫는다. 오늘날 LAN들은 대부분 WAN(광역 통신망)이나 인터넷에 연결한다. IEEE 표준 이더넷 무선 통신을 전제로 해서 단일 주파수 통신을 하는 무전기처럼 타인에게 이야기하는 동안은 그 상대방은 수신만 가능하다. CSMA/CD(충돌검출)방식을 사용한다. 논리 링크 제어 LLC : 흐름제어, 오류제어, 프레임 생성 일부분의 역할을 처리하는 부계층이다. 서로 다른 LAN 사이에 연결성을 제공하기도 한다. 매체 접근 제어 MAC : 프레임을 만드는 기능의 일부나 토큰에 대한 방식을 정의하는 기능을 담당한다. 이더넷 II 프레임 형식 프레임은 다음과 같은 6개 필드로 구성된다. 프리엠블 목적지 주..

네트워크(6) - IP 패킷 전달과 포워딩

연결형 서비스 패킷을 보내기 전, 발신지의 네트워크층 프로토콜은 목적지의 프로토콜과 연결을 설정한다. (네트워크층의 경로설정) 연결 설정 이후, 패킷들을 순서대로 하나씩 전송한다. 모든 패킷을 전송하고 나면 연결이 해제된다. 비연결형 서비스 각 패킷이 독립적으로 처리되며 패킷 사이에 아무런 연관이 없다. 물론 목적지가 같더라도 다른 경로도 전달될 수도 있다. 패킷 포워딩 패킷 포워딩이란 패킷을 전달하는 방법을 의미한다. 포워딩 자체는 뒤에서 살펴보도록 하자. 네트워크층은 패킷이 목적지까지 갈 수 있도록 경로를 지정하여 관리한다. IP패킷을 목적지까지 보내기 위해 경로를 지정하는 방법이 필요한데, 다음 두 종류가 있다. 직접 전달 : 목적지가 전달자와 같은 네트워크에 위치한 호스트에게 전달하는 것을 의미한..

wireshark로 배우는 컴퓨터 네트워크 - 4장 연습문제

1. IPv4 주소의 길이는 _비트이다. a. 16 b. 128 c. 32 d. 64 2. IPv4 주소는 일반적으로 _진 표기법 또는 점 10진 표기법으로 표기된다. a. 16 b. 265 c. 10 d. 64 3. 클래스기반 주소지정에서 IPv4 주소는 _개의 클래스로 나누어진다. a. 3 b. 4 c. 5 d. 6 4. 클래스 A에서 netid는 _이다. a. 0에서 127 b. 128에서 191 c. 192에서 223 d. 224에서 255 5. 클래스 B에서 netid는 _이다. a. 0에서 127 b. 128에서 191 c. 192에서 223 d. 224에서 255 6. 클래스 C에서 netid는 _이다. a. 0에서 127 b. 128에서 191 c. 192에서 223 d. 224에서 255..

네트워크(5) -IP 주소

IP 주소 네트워크층에서는 모든 장치와 서로 통신할 수 있도록 연결된 장치를 유일하게 구분할 수 있는 방법이 필요하다. 인터넷에 연결된 각 장치를 구별하기 위해 IP계층에서 사용하는 식별자를 인터넷 주소 또는 IP주소라고 한다. 한 장치가 두 개의 네트워크와 연결되어 두 개의 IP주소를 가질 수 있지만 똑같은 IP주소를 두 장치가 가질 수는 없다. 허나 여기서 알아둬야 할 것은 IP주소는 유일하긴 하지만 바뀔 수 있다는 것이다. IPv4 주소는 32비트 길이의 주소이며, IPv4 같은 프로토콜에서 사용되는 주소의 총 개수를 주소공간이라 한다.IPv4 주소의 주소공간은 2^32개, 40억 개 이상이다. IP주소를 나타내는 데에 3가지 표기법이 있는데, 각각 이진 표기법, 16진 표기법, 점 10진 표기 법..

네트워크(4) - 네트워크층

교환 switching 메시지를 발신지에서 목적지로 전달하는 과정에서 많은 결정이 이뤄진다. 메시지가 연결장치에 도착할 때 패킷을 송신할 출력포트를 결정하는 것도 그렇다. 패킷이 라우터(교환기)의 한 포트에 도착하면 이 패킷은 다른 포트를 통해 다음 교환기로 전달된다. 이 과정을 교환(switching)이라고 하며 이 과정은 연결장치(라우터)에서 수행된다. 교환의 종류는 다음과 같은 두 가지다. 회선 교환 패킷 교환 회선 교환 circuit switching 대부분 네트워크층에서 구현되지 않고 물리층에서 구현된다. 메시지를 전달하기 전에 발신지와 목적지 사이에 물리회선(링크)를 생성한 후 메시지를 전달한다. 발신지는 메시지를 전달하면 네트워크에 통보하고 네트워크는 다른 연결을 위해 연결을 해제한다. 여기..

728x90
반응형