기록/네트워크 18

네트워크 - 소켓, 리눅스 네트워크 관리

소켓(Socket) 통신 개요소켓은 네트워크 상에서 두 프로그램 간의 양방향 통신을 위한 엔드포인트를 의미한다. 이는 포트 번호에 바인딩되어 TCP 레이어에서 데이터가 전달되어야 하는 애플리케이션을 식별할 수 있게 한다. 여기서 엔드포인트란 IP 주소와 포트 번호의 조합을 의미한다.소켓의 기본 요소프로토콜 체계소켓은 다양한 프로토콜을 지원하며, 주요 프로토콜은 다음과 같다:PF_INET: IPv4 기반 인터넷 프로토콜PF_INET6: IPv6 기반 인터넷 프로토콜PF_LOCAL: UNIX 시스템 내 로컬 통신 프로토콜PF_PACKET: 저수준 패킷 기반 소켓PF_IPX: 노벨 네트워크 프로토콜소켓의 유형TCP 소켓(스트림 소켓): 연결 지향적이며 신뢰성 있는 데이터 전송을 지원한다. 서버는 클라이언트의 ..

기록/네트워크 2025.03.13

네트워크 - 교환 방식부터 TCP/IP 모델까지

개요요즘 네트워크에 대해 다시 공부하고 있다. 깊이 파고 들면 정말 방대한 내용이지만 일단 다룬 부분만 정리해서 올리기로 했다. 내용에서 부족하거나 더 궁금한 부분은 웹 에이전트를 사용해 보충했고, 읽기 쉽게 정리하였다!네트워크 교환 방식과 연결 방식네트워크 통신에서 데이터를 주고받는 방식과 네트워크 장비들의 역할을 이해하는 것은 네트워크 설계와 운영에 필수적이다. 이 글에서는 네트워크의 교환 방식, 연결 방식, 티어 구조 및 주요 네트워크 장비들에 대해 상세히 알아본다.네트워크 교환 방식네트워크에서 데이터를 주고받는 방식은 크게 회선 교환 방식과 패킷 교환 방식으로 나뉜다.회선 교환 방식(Circuit Switching)회선 교환 방식은 통신하기 전에 먼저 송신자와 수신자 사이에 전용 통신 경로(회선)..

기록/네트워크 2025.03.12

네트워크

네트워크네트워크는 분산돼 있는 컴퓨터들이 자원이나 정보를 공유하기 위해 통신망으로 연결한 시스템이다. 이는 현대 정보 기술의 근간이 되는 핵심 인프라로, 인터넷의 기본 구조를 형성하는 요소이다.네트워크의 주요 특징컴퓨터 네트워크는 다음과 같은 특징을 가지고 있다:지리적 장소의 제약 없이 모든 종류의 물리적·논리적 자원을 효율적으로 공유할 수 있다.여러 컴퓨터가 동시에 작업을 수행하는 병렬 처리가 가능하여 컴퓨팅 성능을 대폭 향상시킨다.데이터와 정보의 실시간 교환이 가능하여 협업과 통신 효율성을 극대화한다.누구나 접근할 수 있는 개방성으로 인해 중요한 보안 문제가 발생할 가능성이 있다.네트워크 확장성이 용이하여 새로운 장치를 쉽게 추가하고 연결할 수 있다.네트워크 주소네트워크 주소는 네트워크 상에 존재하는..

기록/네트워크 2025.03.11

네트워크 프로그래밍

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

기록/네트워크 2023.08.31

네트워크(11) - 전송층

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

기록/네트워크 2023.06.14

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

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

기록/네트워크 2023.06.13

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

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

기록/네트워크 2023.06.12

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

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

기록/네트워크 2023.06.11

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

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

기록/네트워크 2023.06.10

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

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

기록/네트워크 2023.06.09
728x90
반응형