분류 전체보기100 [CS] File, File descriptor #4 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Duplication FD - dup(2) / dup2(2) #include int dup(int oldfd); int dup2(int oldfd, int newfd); oldfd (old file descriptor) : 복사하려는 file descriptor newfd (old file descriptor) : 새로운 fd 지정, dup()의 경우 할당 가능한 fd 중 가장 작은 값 할당 Return : oldfd를 복사한 새로운 fd , -1 = error IO redirection #include #include #include #include int main(void) { int f.. 2022. 12. 13. [CS] File, 파일 읽기/쓰기 #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Reading a file - read(2) #include ssize_t read(int fd, void *buf, size_t count); fd (file descriptor) : 읽으려는 파일의 file descriptor buf (buffer) : 읽은 내용을 저장할 buffer의 시작 주소 주의사항 : byte 단위를 읽는 것이기 때문에 void 포인터 형태로 넣어야 한다. count : 읽을 byte의 수 Return : 실제로 읽은 byte의 수 0 = 파일의 끝(EOF)에 도달, -1 = 에러 #2 Writing to a file - write(2) #include ssize.. 2022. 12. 13. [CS] File, 파일 열기/닫기 #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Low-level vs High-level file IO Low-Level File IO (System call) - system call을 이용해서 파일 입출력 수행 - File descriptor 사용 - Byte 단위로 디스크에 입출력 - 특수 파일에 대한 입출력 가능 High-Level File IO (Buffered IO) - C Standard library를 사용하여 파일 입출력 수행 - File pointer 사용 (FILE *fp) - 버퍼(block) 단위로 디스크에 입출력 : 여러 형식의 입출력 지원 #2 Opening files - open(2) man -s 2 open.. 2022. 12. 13. [CS] File, 파일이 무엇인가? #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 네트워크 학습을 하면서, 네트워크도 결국 하나의 파일 입출력으로 봐야 함을 학습했다. 그렇다면 해당 파일 입출력에 대한 system call을 다루기 위한 학습이 필요하다. 해당 포스팅은 이런 이유로 시작되었다. #1 파일 개요 파일? 보조 기억 장치에 저장된 연관된 정보들의 집합 File operations : Create, Write, Read, Reposition, Delete, Etc... OS는 file operation들에 대한 system call을 제공해야 한다. 파일의 종류 : (1) 일반 파일 Regular file: Text or binary data file (2) Direc.. 2022. 12. 13. [CS] 네트워크 기초, HTTP 2 #8 이 문서는 유튜브 '생활코딩'님의 'WEB2 - HTTP' 강의를 토대로 작성되었습니다. 출처 : https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.html In Introduction to HTTP Basics HTTP (HyperText Transfer Protocol) Basics Introduction The WEB Internet (or The Web) is a massive distributed client/server information system as depicted in the following diagram. Many applications are running concurrently over the.. 2022. 12. 11. [CS] 네트워크 기초, HTTP #7 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. #1 웹 서비스 구조 Web 탄생 배경 Web 탄생 이전 인터넷 상 데이터 = 문자 ~ TEXT파일 티모시 버너스 리 HTML = Text + Link HTTP = HTML + 인터넷 Web = HTML + HTTP 문서를 다루는 모든 프로그램은 Data + 제어 + 인터페이스 3요소로 구성되어 있다. #2 웹 서비스 3대 요소 3대 요소 : 자료구조(데이터) + UI + 제어체계 유지보수 편의성을 극대화 하기 위해서 위 요소를 모듈화한다. Web Client (Browser) - internet - Web Server 초창기 웹서버 HTTP는 TCP/IP 통신을 전제로 했다. HTTP의 중요한 특징 : Stateless 인터넷 .. 2022. 12. 11. [CS] 네트워크 기초, L2 스위치 그리고 TCP 장애 #6 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. #1 DNS? 인터넷은 결국 Packet Switching Network 이다. 패킷은 바뀌지 않지만 패킷을 통채로 캡슐화한Frame의 이더넷 헤더는 계속 바뀐다. L2 구간을 통과할 때는 MAC주소가 제일 중요하다. IP주소는 전혀 영향을 끼치지 않는다. MAC주소는 호스트를 하나 지나서 통과할 때마다 바뀐다. #2 L2 스위치와 ARP 작동원리 ARP 프로토콜 : IP주소로 MAC주소를 알아내는 프로토콜 L2 구간 MAC우선 스위치 허브 : 포트마다 MAC을 저장한다. ARP : 1. Braodcast 방식으로 해당 IP주소를 전송한다. 2. 해당 IP주소 호스트에 전송되면 호스트는 Unicast방식으로 MAC주소를 Reply.. 2022. 12. 10. [CS] 네트워크 기초, DNS #5 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. DNS : 분산형 DB구조 ( 계층적 구조 ) Root DNS : 전 세계에 13대 2002.10.22 Root DNS DDoS 공격 사건 도메인 네임? www.naver.com www : Host name naver.com : Domain 인터넷에서는 각각의 Host를 식별하기 위해서 IP주소를 할당한다. IP주소는 외우기 어렵다. 이름을 할당하자 > 도메인 네임 'www.naver.com' 엔터를 하게 된 경우 : 1. PC 자신의 메모리에서 DNS Cache 탐색 2. hosts File을 탐색 3. DNS에 요청 (이 때 공유기를 사용한다면 공유기가 응답한다.) 공유기가 DNS Forwarding을 제공한다. 4. 공유기가.. 2022. 12. 10. [CS] 네트워크 기초, TCP연결? #4 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. #1 TCP/IP 송/수신 원리 Process(Server)가 File(Socket)에 할 수 있는 동작은 기본적으로 Read, Write, X 이다. 소켓통신에 실행 개념은 없다. 소켓통신 Read : Receive (Input) 소켓 통신 Write : Send (Output) 보조기억장치에 있는 1.4MB의 데이터를 소켓을 통해서 Send해야하는 상황 : 1. Process의 Socket에 일정 메모리를 할당한다. Buffer#1( 속도 지연 발생 7. TCP Buffer의 크기를 Window Size라고 한다. 8. 수신측에서 Segment를 받으면 저장할 수 있는 공간. 9. ACK 데이터에 Window Size를 포함한.. 2022. 12. 10. 이전 1 ··· 5 6 7 8 9 10 11 12 다음