Web, HTTP 모두 인터넷 네트워크망에 기반하여 동작한다. 따라서, HTTP 학습을 위한 사전 기본 학습의 개념으로 인터넷 통신, IP, TCP, UDP, PORT, DNS에 대해 간단하게 알아보자. 인터넷에서 컴퓨터 간 통신 만약 클라이언트와 서버가 바로 옆에 붙어 있다면 단순하게 케이블을 연결해 요청을 보내고 응답을 받는 방식을 사용하면 될 것이다. 하지만, 둘이 멀리 떨어져 있어 인터넷 망을 거쳐야 한다면 중간에 수많은 노드(서버)를 거쳐야 한다. 이때 어떤 규칙을 사용해서 넘어가게 될까? 이를 이해하기 위해 IP에 대한 학습이 필요하다. IP(Internet Protocol) 복잡한 인터넷 망에서 데이터(메시지)를 보내기 위해서는 최소한의 규칙이 필요하다. 이때 IP 주소를 사용하게 되는데, ..
TCP에서는 연결과정보다 중요한 것이 종료 과정이다. 종료 과정에서는 예상치 못한 일이 발생할 수 있기 때문이다. 일방적인 연결종료의 문제점 close 함수호출은 완전 종료를 의미한다. 완전 종료라는 것은 데이터를 전송하는 것은 물론 수신하는 것조차 더 이상 불가능한 상황을 의미한다. 상대방의 상태에 상관없이 일방적인 종료의 형태를 띤다. 때문에 한쪽에서의 일방적인 close 함수호출은 경우에 따라 좋지 못하다. 위 그림은 양방향으로 통신하고 있는 두 호스트의 상황을 나타낸 그림이다. Host A가 마지막 데이터를 전송하고 나서 close함수의 호출을 통해 연결을 종료하였다. 그래서 그 이후부터는 Host A는 Host B가 전송하는 데이터를 수신하지 못한다(데이터 수신과 관련된 함수의 호출 자체가 불가..
TCP와 UDP에 대한 이해 TCP/IP 프로토콜 스택이란, 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택이다. 큰 문제를 작게 나눠 계층화한 결과로, 각 스택 별 영역을 전문화하고 표준화한다. Link계층 → IP계층 → (TCP계층 / UDP계층) → Application계층 으로 구성되어 있다. Link 계층 물리적 영역의 표준화 결과이다. LAN, WAN, MAN과 같은 물리적인 네트워크 표준 관련 프로토콜이 정의되어 있다. IP 계층 Internet Protocol을 의미한다. 경로의 설정과 관련있는 프로토콜이다. TCP/UDP 계층 실제 데이터의 송수신과 관련된 계층이다(Transport Layer). TCP : error control이 존재해 데이터의 전송을 보장하는 신뢰성이 있는 프..
Protocol(프로토콜)이란, 컴퓨터 상호간의 데이터 송수신에 필요한 통신규약이며 소켓을 생성할 때 기본적인 프로토콜을 지정해야 한다. #include int socket(int domain, int type, int protocol); domain : 소켓이 사용할 프로토콜 체계(Protocol Family) 정보 전달 type : 소켓의 데이터 전송방식에 대한 정보 전달 protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달 →모두 프로토콜 정보와 관련있다. Protocol Family(프로토콜 체계) 프로토콜도 그 종류에 따라서 부류가 나뉘는데, 그 부류를 가리켜 프로토콜 체계라 한다. int domain에 들어가는 부분이다. Type(소켓의 타입) 데이터 전송 방식을 의미한다. 소켓..
다양한 application의 구조에 대하여 알아보자. 1. Server-Client Server 서버는 항상 켜져 있는 호스트(always-on Host)이다. 모든 서버는 호스트이지만, 모든 호스트가 서버인 것은 아니다. → 네트워크에 연결이 확립된 모든 장치는 호스트의 자격이 있는 반면, 다른 장치(클라이언트)로부터의 연결을 수락하는 호스트만 서버가 될 수 있다. 영구적으로 고정된 주소 값을 가지며, 이를 IP address라 한다. 각 Server를 IP 주소로 구분한다. Client 서버와 통신한다. 클라이언트 간에 직접 통신하진 않는다. 유동 IP(dynamic IP) 주소를 가진다.(고정 IP를 사용할 수도 있다.) → Internet을 사용할 시점에 받아온다. 항상 연결되어 있지 않고, 간..