본문 바로가기

CS/네트워크18

[TCP/IP 그림책] 개요(1장) TCP/IP : 일반적으로 인터넷에서 사용되는 통신 프로토콜군 패킷 : 데이터 전송시에 데이터를 일정한 크기로 잘라서 보내는데. 이때 사용되는 정보의 전송 단위 계층화 : 송수신과 관련된 일련의 작업을 몇 개의 층으로 나눈 것 애플리케이션층 : 애플리케이션에 맞춰 통신을 수행할 수 있도록 함 ex) HTTP SMTP POP3 FTP TELNET NNTP RCP... 트랜스포트층 : 송신되는 데이터를 수신측 애플리케이션에 전달 ex) TCP UDP 네트워크층 : 수신측 컴퓨터까지 데이터를 전달 ex) IP 데이터 링크층 : 네트워크에 직접 연결된 기기 간을 전송할 수 있도록 함 ex) Ethemet FDDI ATM PPP PPoE... 물리층 : 데이터 -> 신호 or 신호 -> 데이터 송신측의 각 계층 .. 2019. 5. 10.
[TCP/IP 그림책] 맛보기(0장) 네트워크 : 정보나 노동력 등 어떤 자산을 서로 주고받을 수 있는 상태 컴퓨터 네트워크 : 컴퓨터끼리 케이블이나 적외선, 전파 등 어떤 수단을 사용하여 연결해 다양한 데이터를 주고받을 수 있는 상태로 되어 있는 것 * tcp/ip가 컴퓨터 네트워크를 담당하는 구조 LAN(Local Area Network) : 비교적 좁은 공간에 있는 기기끼리 연결한 네트워크 ex) 대학, 연구소, 기업 내 접속 -> LAN 케이블(동축 케이블) 케이블 사용X -> 무선 LAN WAN(Wide Area Network) : 지리적으로 떨어진 장소에 있는 기기끼리 연결한 비교적 대규모의 네트워크 ex) 회사의 지점 간 접속 -> 광섬유 케이블 & 공중망(전화 회선) 인터넷 : 여러개의 LAN 이나 WAN을 연결한 전 세계 규.. 2019. 5. 10.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] 멀티쓰레드 기반의 서버구현 멀티쓰레드 기반의 서버구현 //시간상 잠깐 챕터를 많이 건너띄어야 겠다.. 프로세스는 나중에 공부하자 ㅠㅠ 프로세스 생성이라는 부담스러운 작업과정을 거침 두 프로세스 사이에서의 데이터 교환을 위해서는 별도의 ipc 기법을 적용해야 함 컨텍스트 스위칭에 따른 부담 쓰레드의 생성 및 컨텍스트 스위칭은 프로세스의 생성 및 컨텍스트 스위칭보다 빠름 쓰레드 사이에서의 데이터 교환에는 특별한 기법이 필요x 프로세스 : 운영체제 관점에서 별도의 실행흐름을 구성하는 단위 쓰레드 : 프로세스 관점에서 별도의 실행흐름을 구성하는 단위 쓰레드의 메모리 구조 프로세스처럼 완전히 메모리 구조를 분리시킬 것이 아니라, 스택 영역만을 분리시킴 컨텍스트 스위칭 시 데이터 영역과 힙은 올리고 내릴 필요x 데이터 영역과 힙을 이용해서 .. 2019. 2. 9.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] TCP 기반 서버/클라이언트 2 TCP 기반 서버/클라이언트 2 서버 = 데이터의 경계를 구분하지 않고 수신된 데이터를 그대로 전송할 의무만 갖음 클라이언트 = 문장 단위로 데이터를 송수신하기 때문에, 데이터의 경계를 구분해야함 * TCP의 read & write 함수호출은 데이터의 경계를 구분하지 않음 write 함수호출을 통해서 전송한 데이터의 길이만큼 읽어 들이기 위한 반복문의 삽입 TCP를 기반으로 데이터를 구분지어 읽어 들이는데 부가적으로 필요한 구분 참고문서 : 윤성우의 열혈 tcp/ip 소켓 프로그래밍 2019. 2. 8.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] TCP 기반 서버/클라이언트 (윈도우) TCP 기반 서버/클라이언트 (윈도우) 리눅스 시반 예제와 윈도우 기반 예제는 동일함! 윈도우 코드로 수정> WSAStartup, WSACleanup 함수호출을 동한 소켓 라이브러리의 초기화와 해제 자료형과 변수의 이름을 윈도우 스타일로 변경 데이터 송수신을 위해서 read, write 함수 대신 recv, send 함수 호출 소켓의 종료를 위해서 close 대신 closesocket 함수 호출 참고문서 : 윤성우의 열혈 tcp/ip 소켓 프로그래밍 2019. 2. 7.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] TCP 기반 서버/클라이언트 1 TCP 기반 서버/클라이언트 TCP/IP 프로토콜 스택 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택 큰 문제를 작게 나눠서 계층화 한 결과 데이터 송수신ㅇ의 과정을 네 개의 영역으로 계층화 한 결과 각 스택 별 영역을 전문화하고 표준화 함 7계층으로 세분화가 되며, 4계층으로도 표현함 TCP/UDP 계층의 기능 및 역할 실제 데이터의 송수신과 관련 있는 계층 전송계층 이라고도 함 TCP는 데이터의 전송을 보장하는 신뢰성 있는 프로토콜, UDP는 보장하지 않는 프로토콜 TCP는 신뢰성으르 보장하기 때문에 UDP에 비해 복잡한 프로토콜 APPLICATION 계층 응용프로그램의 프로토콜을 구성하는 계층 소켓을 기반으로 완성하는 프로토콜 소켓을 생성하면, 앞서 보인 LINK,IP,TCP/UDP 계층에 대.. 2019. 2. 5.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] 주소체계 & 데이터 정렬 주소체계 & 데이터 정렬 IPv4 기준의 4바이트 IP주소는 네트워크 주소와 호스트 주소로 나뉨 라우터&스위치 : 외부로부터 수신된 데이터를 호스트에 전달하고, 호스트가 전달하는 데이터를 외부로 송신해주는 물리적 장치 (스위치 : 라우터보다 기능적으로 작은 것) 클래스 A의 첫 번째 비트는 항상 0으로 시작 클래스 B의 첫 두 비트는 항상 10으로 시작 클래스 C의 첫 세 비트는 항상 110으로 시작 IP는 데이터를 NIC(네트워크 인터페이스 카드)을 통해 컴퓨터 내부로 전송하는데 사용 운영체제는 PORT 번호를 활용하여 컴퓨터 내부로 전송된 데이터를 소켓에 적절히 분배하는 작업을 함 *PROT번호는 하나의 운영체제 내에서 동일한 PORT번호를 둘 이상의 소켓에 할당할 수 없음. but TCP소켓과 UD.. 2019. 2. 2.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] 프로토콜 프로토콜 프로토콜 : 컴퓨터 상호간의 대화에 필요한 통신규약 (소켓함수의 첫 번째 인자) 필자는 PF_INET를 사용! (소켓함수의 두 번째 인자) 1. 연결지향형 소켓(SOCK_STREAM) 중간에 데이터가 소멸되지 않고 목적지로 전송 전송 순서대로 데이터가 수신 전송되는 데이터의 경계가 존재하지 X 1:1의 소켓연결 2. 비 연결지향형 소켓(SOCK_DGRAM) 전송된 순서에 상관없이 가장 빠른 전송을 지향 전송된 데이터는 손실의 우려가 있고 파손의 우려가 있음 전송되는 데이터의 경계가 존재한다. 한번에 전송할 수 있는 데이터의 크기가 제한 (소켓함수의 세 번째 인자) 하나의 프로토콜 체계 안에 데이터의 전송방식이 동일한 프로토콜이 둘 이상 존재하는 경우 사용 리눅스랑 차이점으로 socket함수 오류.. 2019. 2. 2.
반응형