본문 바로가기

CS38

[윤성우의 열혈 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.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] Chapter 01 내용 확인문제 Chapter 01 내용 확인문제 1. 소켓 : 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 의미 소켓이라는 이름을 붙인 이유 : 멀리 떨어져있는 컴퓨터와 데이터를 송수신하려면 인터넷이라는 네트워크 망에 연결해야 하는데, 이에 사용되는 도구가 소켓이기 때문 2. listen 함수는 소켓을 연결요청이 가능한 상태가 되게 하고 accept 함수는 연결요청을 수락함 3. 리눅스는 소켓을 파일의 일종으로 구분함. 따라서 파일 입출력 네트워크상에서의 데이터 송수신에 사용할 수 있음. 그러나 윈도우는 리눅스와 달리 파일과 소켓을 구분하기 때문에 별도의 데이터 송수신 함수를 참조해야 함. 4. 인터넷상에서 소켓을 구분하기 위해서는 주소정보가 필요함. 따라서 bind 함수를 .. 2019. 1. 31.
[우분투] GCC 컴파일러 사용방법 GCC 컴파일러 사용방법 //리눅스를 공부 할 시간이 없어서 우선 기본적인 것만 알아둘련다 ㅠㅠ 우분투 사용 GCC는 C언어 컴파일러임. vim 이라는 텍스트 편집기를 사용! 1. 작업 할 폴더 생성 간단하게 c로 생성 ㅇㅅㅇ 2. Open in Terminal 음 저 주황색이 아니고 아래쪽에 Open in Terminal을 눌러준다. (우클릭으로) 3. 이렇게 나옴 4. vim을 사용하자 위의 화면은 test01.c 라는 이름의 빈 파일이다. vim은 입력모드와 명령모드가 있는데 아래그림이 명령모드임 5. vim의 명령모드 6. vim의 입력모드 i를 입력하게 되면 --끼워넣기--가 나오고 이제 코드를 작성 할 수 있다. 7. 가장 기본이 되는 "hello world!" 작성 입력이 끝나면 ESC를 눌.. 2019. 1. 27.
[윤성우의 열혈 TCP/IP 소켓 프로그래밍] 네트워크 프로그래밍 & 소켓 네트워크 프로그래밍 & 소켓 //열혈 TCP/IP를 기반으로 작성~_~ 아직 리눅스를 잘몰라서 원도우로 공부해야겠다.. 했는데 두가지 다 사용 할 줄 알아야 한다해서 리눅스도 같이 하기로 ㅎㅎ 네트워크 프로그래밍 : 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고받을 수 있도록 하는 것 소켓 : 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치 1. 소켓 생성 (socket 함수호출) 2. IP주소와 PORT번호 할당 (bind 함수호출) 3. 연결요청 가능상태로 변경 (listen 함수호출) 4. 연결요청에 대한 수락 (accept 함수호출) 서버 소켓 bind IP주소와 PORT번호 할당 listen 연결요청 가능상태로 변경 accept 연결요청에 대.. 2019. 1. 12.
반응형