chore: import upstream snapshot with attribution
CI / lint (3.11) (push) Has been cancelled
CI / lint (3.12) (push) Has been cancelled
CI / lint (3.13) (push) Has been cancelled
CI / shellcheck (push) Has been cancelled
CI / shfmt (push) Has been cancelled
CI / setup (3.11) (push) Has been cancelled
CI / setup (3.12) (push) Has been cancelled
CI / setup (3.13) (push) Has been cancelled
CI / check-licenses (3.12) (push) Has been cancelled
CI / test_unit (3.11) (push) Has been cancelled
CI / test_unit (3.12) (push) Has been cancelled
CI / test_unit (3.13) (push) Has been cancelled
CI / test_unit_no_extras (3.11) (push) Has been cancelled
CI / test_unit_no_extras (3.12) (push) Has been cancelled
CI / test_json_to_html (3.12) (push) Has been cancelled
CI / test_unit_no_extras (3.13) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.12, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.11, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.12, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.11, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.13, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.11, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.12, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.13, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.11, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.12, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.13, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.11, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.12, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.13, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.11, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.12, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.13, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.11, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.12, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.13, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.11, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.12, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.13, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
Build And Push Docker Image / set-short-sha (push) Has been cancelled
Partition Benchmark / setup (push) Has been cancelled
Partition Benchmark / Measure and compare partition() runtime (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.13, --extra xlsx) (push) Has been cancelled
CI / test_ingest_src (3.12) (push) Has been cancelled
CI / test_json_to_markdown (3.12) (push) Has been cancelled
CI / changelog (push) Has been cancelled
CI / test_dockerfile (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/amd64, opensource-linux-8core) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Build And Push Docker Image / publish-images (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:33:56 +08:00
commit 461bf6fd40
1313 changed files with 1079898 additions and 0 deletions
@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>
</title>
</head>
<body>
<h1 class="Title" id="1e41f20785644cdea2f017cfb67bb359">
Core Skills for Biomedical Data Scientists
</h1>
<p class="NarrativeText" id="c915a2a57c901810a698491ca2393669">
Maryam Zaringhalam, PhD, AAAS Science &amp; Technology Policy Fellow
</p>
<p class="NarrativeText" id="b24c3f8d268b2f834a00966d8faef975">
Lisa Federer, MLIS, Data Science Training Coordinator
</p>
<p class="NarrativeText" id="fcff333f886b39cee0a7084a9ff9204d">
Michael F. Huerta, PhD, Associate Director of NLM for Program Development and NLM Coordinator of Data Science and Open Science Initiatives
</p>
<h1 class="Title" id="1b86fad341db35208d75a543bcf819ae">
Executive Summary
</h1>
<p class="NarrativeText" id="fee71d4f7ef7a5f253a44f6df648d12a">
This report provides recommendations for a minimal set of core skills for biomedical data scientists based on analysis that draws on opinions of data scientists, curricula for existing biomedical data science programs, and requirements for biomedical data science jobs. Suggested high-level core skills include:
</p>
<li class="ListItem" id="caa3c2eba90fedb7c8923ae8cd8de961">
1. General biomedical subject matter knowledge: biomedical data scientists should have a general working knowledge of the principles of biology, bioinformatics, and basic clinical science;
</li>
<li class="ListItem" id="a4622e6575ee04b0c4d74c0c6b3b2452">
2. Programming language expertise: biomedical data scientists should be fluent in at least one programming language (typically R and/or Python);
</li>
<li class="ListItem" id="206899164b194bb9c379531b35eae01b">
3. Predictive analytics, modeling, and machine learning: while a range of statistical methods may be useful, predictive analytics, modeling, and machine learning emerged as especially important skills in biomedical data science;
</li>
<li class="ListItem" id="36eb8f3c3778fbb71dc056571e71175d">
4. Team science and scientific communication: “soft” skills, like the ability to work well on teams and communicate effectively in both verbal and written venues, may be as important as the more technical skills typically associated with data science.
</li>
<li class="ListItem" id="afe37b1ec10a6d08294ff0fb6df79996">
5. Responsible data stewardship: a successful data scientist must be able to implement best practices for data management and stewardship, as well as conduct research in an ethical manner that maintains data security and privacy.
</li>
<p class="NarrativeText" id="b29f66200f2cc9ff2b49f3d07fd8022b">
The report further details specific skills and expertise relevant to biomedical data scientists.
</p>
<h1 class="Title" id="bab05a183c34df666bfc920f04d17637">
Motivation
</h1>
<p class="NarrativeText" id="f250e86931949c66fe99d742fd9be29c">
Training a biomedical data science (BDS) workforce is a central theme in NLMs Strategic Plan for the coming decade. That commitment is echoed in the NIH-wide Big Data to Knowledge (BD2K) initiative, which invested $61 million between FY2014 and FY2017 in training programs for the development and use of biomedical big data science methods and tools. In line with
</p>
<div class="Header" id="9aa82368657b60536f152fd413aec316">
Core Skills for Biomedical Data Scientists
</div>
<p class="UncategorizedText" id="4f2dbe3656a9ebc60c7e3426ad3cb3e3">
_____________________________________________________________________________________________
</p>
<p class="NarrativeText" id="cd359ae8c49885ead47318021438eead">
this commitment, a recent report to the NLM Director recommended working across NIH to identify and develop core skills required of a biomedical data scientist to consistency across the cohort of NIH-trained data scientists. This report provides a set of recommended core skills based on analysis of current BD2K-funded training programs, biomedical data science job ads, and practicing members of the current data science workforce.
</p>
<h1 class="Title" id="bf8321a34edb7103ec4209f3e4a8a8da">
Methodology
</h1>
<p class="NarrativeText" id="1e1d3d1a5c1397fc588393568d829bc8">
The Workforce Excellence team took a three-pronged approach to identifying core skills required of a biomedical data scientist (BDS), drawing from:
</p>
<li class="ListItem" id="45d7ff56632d66a2ab2d4dd2716d4d2e">
a) Responses to a 2017 Kaggle1 survey2 of over 16,000 self-identified data scientists working across many industries. Analysis of the Kaggle survey responses from the current data science workforce provided insights into the current generation of data scientists, including how they were trained and what programming and analysis skills they use.
</li>
<li class="ListItem" id="bf452aac5123fcedda30dd6ed179f41c">
b) Data science skills taught in BD2K-funded training programs. A qualitative content analysis was applied to the descriptions of required courses offered under the 12 BD2K-funded training programs. Each course was coded using qualitative data analysis software, with each skill that was present in the description counted once. The coding schema of data science-related skills was inductively developed and was organized into four major categories: (1) statistics and math skills; (2) computer science; (3) subject knowledge; (4) general skills, like communication and teamwork. The coding schema is detailed in Appendix A.
</li>
<li class="ListItem" id="ca176cbef532792b1f11830ff7520587">
c) Desired skills identified from data science-related job ads. 59 job ads from government (8.5%), academia (42.4%), industry (33.9%), and the nonprofit sector (15.3%) were sampled from websites like Glassdoor, Linkedin, and Ziprecruiter. The content analysis methodology and coding schema utilized in analyzing the training programs were applied to the job descriptions. Because many job ads mentioned the same skill more than once, each occurrence of the skill was coded, therefore weighting important skills that were mentioned multiple times in a single ad.
</li>
<p class="NarrativeText" id="11b170fedd889c3b895bbd28acd811ca">
Analysis of the above data provided insights into the current state of biomedical data science training, as well as a view into data science-related skills likely to be needed to prepare the BDS workforce to succeed in the future. Together, these analyses informed recommendations for core skills necessary for a competitive biomedical data scientist.
</p>
<p class="NarrativeText" id="2665aadf75bca259f1f5b4c91a53a301">
1 Kaggle is an online community for data scientists, serving as a platform for collaboration, competition, and learning: http://kaggle.com
</p>
<p class="NarrativeText" id="8bbfe1c3e6bca9a33226d20d69b2297a">
2 In August 2017, Kaggle conducted an industry-wide survey to gain a clearer picture of the state of data science and machine learning. A standard set of questions were asked of all respondents, with more specific questions related to work for employed data scientists and questions related to learning for data scientists in training. Methodology and results: https://www.kaggle.com/kaggle/kaggle-survey-2017
</p>
<p class="UncategorizedText" id="dd4a661e1a3c898a5cf6328ba56b924d">
2
</p>
</body>
</html>
@@ -0,0 +1,251 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>
</title>
</head>
<body>
<h1 class="Title" id="a278e93c883ff4444a18689f657a2a38">
Ay Department of the Treasury Internal Revenue Service Instructions for Form 3115 (Rev. November 1987) Application for Change in Accounting Method
</h1>
<p class="NarrativeText" id="5801c515b515aadfb7717e4c36a4cea4">
(Section references are to the Internal Revenue Code unless otherwise noted.)
</p>
<h1 class="Title" id="6e45aed950f54e73651c4541d70b8691">
Paperwork Reduction Act Notice
</h1>
<p class="NarrativeText" id="f4bcdec78efff009902073a92063e592">
We ask for this information to carry out the Internal Revenue laws of the United States. We need it to ensure that taxpayers are complying with these laws and to allow us to figure and collect the right amount of tax. You are required to give us this information.
</p>
<h1 class="Title" id="74d413aabe9679cf430201a53e8034a0">
General Instructions
</h1>
<h1 class="Title" id="85af235e687b4a6537e5542a42456d25">
Purpose of Form
</h1>
<p class="NarrativeText" id="21dd0367f76fe2f5f1c553ea7b901857">
File this form to request a change in your accounting method, including the accounting treatment of any item. If you are requesting a change In accounting period, use Form 1128, Application for Change in Accounting Period. For more information, see Publication 538, Accounting Periods and Methods.
</p>
<p class="NarrativeText" id="0cf9161971e9ea8feec111ff7d24f403">
When filing Form 3115, taxpayers are reminded to determine if IRS has published a ruling or procedure dealing with the specific type of change since November 1987 (the current revision date of Form 3115),
</p>
<p class="NarrativeText" id="0fb8eb24db1b27f6f8b69213e3dd9b41">
Long-term contracts. —If you are required to change your method of accounting for long-term contracts under section 460, see Notice 87-61 (9/21/87), 1987-38 IRB 40, for the notification procedures that must be followed.
</p>
<p class="NarrativeText" id="fd78f4e1d471af7ddb468878e4401dab">
Other methods.—Unless the Service has published a regulation or procedure to the contrary, all other changes tn accounting methods required by the Act are automatically considered to be approved by the Commissioner. Examples of method changes automatically approved by the Commissioner are those changes required to effect: (1) the repeal of the reserve method for bad debts of taxpayers other than financial institutions (Act section 805); (2) the repeal of the installment method for sales under a revolving credit plan (Act section 812); (3) the inclusion of income attributable to the sale or furnishing of utility services no later than the year in which the services were provided to customers (Act section 821); and (4) the repeal of the deduction for qualified discount coupons (Act section 823). Do not file Form 3115 for these changes.
</p>
<p class="NarrativeText" id="2826b3c8ca76c4125969a1f820d84dbd">
Generally, applicants must complete Section A. In addition, complete the appropriate sections (B-1 through H) for which a change |s desired.
</p>
<p class="NarrativeText" id="b8f9f1fdeffadd34472959092459fba9">
You must give all relevant facts, including a detailed description of your present and proposed methods. You must also state the reason(s) you believe approval to make the requested change should be granted. Attach additional pages if more space is needed for explanations. Each page should show your name, address, and identifying number.
</p>
<p class="NarrativeText" id="b7ac9f40a0b010ca0f9a6dedba12a95c">
State whether you desire a conference In the National Office if the Service proposes to disapprove your application.
</p>
<h1 class="Title" id="45da2e5561453f7cdfcf31c1ace13cf0">
Changes to Accounting Methods Required Under the Tax Reform Act of 1986
</h1>
<p class="NarrativeText" id="158783669b4b944ae0057b632797dcfe">
Uniform capitalization rules and Jimitation on cash method.—f you are required to change your method of accounting under section,263A (relating to the capitalization and inclusion in inventory costs of certain expenses) or 448 (limiting the use of the cash method of accounting by certain taxpayers) as added by the Tax Reform Act of 1986 (“Act”), the change !s treated as Initiated by the taxpayer, approved by the Commissioner, and the period for taking the adjustments under section 481(a) into account will not exceed 4 years. (Hospitals required to change from the cash method under section 448 have 10 years to take the adjustrnents into account.) Complete Section A and the appropriate sections (B-1 or C and D) for which the change is required.
</p>
<p class="NarrativeText" id="486102e7c1f95b669f23516c52b4b22a">
Disregard the instructions under Time and Place for Filing and Late Applications. Instead, attach Form 3115 to your income tax return for the year of change; do not file it separately. Also include on a separate statement accompanying the Form 3115 the period over which the section 481(a) adjustment will be taken into account and the basis for that conclusion. Identify the automatic change being made at the top of page 1 of Form 3115 (e.g., “Automatic Change to Accrual Method—Section 448”). See Temporary Regulations sections 1.263A-1T and 1.448-1T for additional information.
</p>
<h1 class="Title" id="daacd181c8b4c9cdeaa9762e5efd3586">
Time and Place for Filing
</h1>
<p class="NarrativeText" id="9dc0da98f357e35bd76326df5b1ed98c">
Generally, applicants must file this form within the first 180 days of the tax year in which it is desired to make the change.
</p>
<p class="NarrativeText" id="efc9301529407a862b27e8523a6ad185">
Taxpayers, other than exempt organizations, should file Form 3115 with the Commissioner of Internal Revenue, Attention: CC:C:4, 1111 Constitution Avenue, NW, Washington, DC 20224, Exempt organizations should file with the Assistant Commissioner (Employee Plans and Exempt Organizations), 1111 Constitution Avenue, NW, Washington, DC 20224.
</p>
<p class="NarrativeText" id="895c4176b4389951a77d58163bed3a46">
You should normally receive an acknowledgment of receipt of your application within 30 days. If you do not hear from IRS within 30 days of submitting your completed Form 3115, you may inquire as to the receipt of your application by writing to: Control Clerk, CC:C:4, Internal Revenue Service, Room 5040, 1111 Constitution Avenue, NW, Washington, DC 20224.
</p>
<p class="NarrativeText" id="bc4e2ef86aaa9fa10cc48d7dd6e1b14a">
See section 5.03 of Rev. Proc. 84-74 for filing an early application.
</p>
<p class="NarrativeText" id="97d646ab1d25161f2eaa2b9f29a9f101">
Note: /f this form is being filed in accordance with Rev. Proc. 74-11, see Section G below.
</p>
<h1 class="Title" id="9bac1c8a91f637da3c6114d95239ceee">
Late Applications
</h1>
<p class="NarrativeText" id="e8d2cca50911bbaa3b2de2e76cb2eb8c">
If your application is filed after the 180-day period, it is late. The application will be considered for processing only upon a showing of “good cause” and if it can be shown to the satisfaction of the Commissioner that granting you an extension will not jeopardize the Government's interests. For further information, see Rev. Proc. 79-63.
</p>
<h1 class="Title" id="569b780f1a01b3fe19031adfd2ff6567">
Identifying Number
</h1>
<p class="NarrativeText" id="8702d8676330458b169220b33924e3e2">
Individuals. —An individual should enter his or her social security number in this block. If the application is made on behalf of a husband and wife who file their income tax return jointly, enter the social security numbers of both.
</p>
<p class="NarrativeText" id="5ab614de4ef721a684e4e8e0c8fb5788">
Others.-—The employer identification number of an applicant other than an individual should be entered tn this block.
</p>
<h1 class="Title" id="4751d71840e9b5cab30cc47704dae731">
Signature
</h1>
<p class="NarrativeText" id="3c683355b205b83c4c0d3437e6cfa7e1">
Individuals. —An individual desiring the change should sign the application. If the application pertains to a husband and wife filing a joint income tax return, the names of both should appear in the heading and both should sign.
</p>
<p class="NarrativeText" id="1a487e582980fedf46613e0848befc44">
Partnerships.—The form shouid be signed with the partnership name followed by the signature of one of the general partners and the words “General Partner.”
</p>
<p class="NarrativeText" id="28ac207401b182955c7f456e4ed569e7">
Corporations, cooperatives, and insurance companies.—The form should show the name of the corporation, cooperative, or insurance company and the signature of the president, vice president, treasurer, assistant treasurer, or chief accounting officer (such as tax officer) authorized to sign, and his or her official title. Receivers, trustees, or assignees must sign any application they are required to file. For a subsidiary corporation filing a consolidated return with its parent, the form should be signed by an officer of the parent corporation.
</p>
<p class="NarrativeText" id="0bb2ae65d2e8e2d6deafb8a0b8ca959e">
Fiduciaries.—The-form should show the name of the estate or trust and be signed by the fiduciary, personal representative, executor, executrix, administrator, administratrix, etc., having legal authority to sign, and his or her title.
</p>
<p class="NarrativeText" id="76d50bc1b5843d10ec33f0dd669e0158">
Preparer other than partner, officer, etc.—The signature of the individual preparing the application should appear in the space provided on page 6.
</p>
<p class="NarrativeText" id="faf28c09c241cf560febeb1dba420aad">
If the individual or firm is also authorized to represent the applicant before the IRS, receive a copy of the requested ruling, or perform any other act(s), the power of attorney must reflect such authorization(s).
</p>
<h1 class="Title" id="441fb1ede36ac4766833502b0400a14a">
Affiliated Groups
</h1>
<p class="NarrativeText" id="afc819c7bbdae95ccdeb342ca4447319">
Taxpayers that are members of an affiliated group filing a consolidated return that seeks to change to the same accounting method for more than one member of the group must file a separate Form 3115 for each such member,
</p>
<h1 class="Title" id="5a646ca8e56ece623a47079b32e62fc6">
Specific Instructions
</h1>
<h1 class="Title" id="e0e692b1f478333e3950f8cb2483a484">
Section A
</h1>
<p class="NarrativeText" id="e6ef62be27627e0886c49f013b3eb389">
Item 5a, page 1.— “Taxable income or (loss) from operations” is to be entered before application of any net operating loss deduction under section 172(a).
</p>
<p class="NarrativeText" id="5a797a3ffef4100ca3d0100c1812979f">
Item 6, page 2.—The term “gross receipts” includes total sales (net of returns and allowances) and all amounts received for services. In addition, gross receipts include any income from investments and from incidental or outside sources (e.g., interest, dividends, rents, royalties, and annuities). However, if you area resaler of personal property, exclude from gross receipts any amounts not derived in the ordinary course of a trade or business. Gross receipts do not include amounts received for sales taxes if, under the applicable state or local law, the tax is legally imposed on the purchaser of the good or service, and the taxpayer merely collects and remits the tax to the taxing authority.
</p>
<p class="NarrativeText" id="31b52f9f7ca8d75190858bf0d55805db">
Item 7b, page 2.—If item 7b 1s “Yes,” indicate on a separate sheet the following for each separate trade or business: Nature of business
</p>
<p class="NarrativeText" id="a34b5c633b40ae532a293aa5ece41ff6">
(manufacturing, retailer, wholesaler, etc.), employer identification number, overall method of accounting, and whether, in the last 6 years, that business has changed its accounting method, or is also changing its accounting method as part of this request or as a separate request.
</p>
<p class="NarrativeText" id="28d8006c1f48ce2aec42391c8318fc8a">
Item 11, page 2.—If you cannot provide the requested information, you may sign a statement under penalties of perjury that:
</p>
<p class="NarrativeText" id="77ff8c77051f28203e606e662575a3dc">
(1) Gives your best estimate of the percentage of the section 481(a) adjustment that would have been required if the requested change had been made for each of the 3 preceding years; and
</p>
<p class="NarrativeText" id="1dbbb077a11837f518df88bb5103f8c6">
(2) Explains in detail why you cannot provide the requested information.
</p>
<p class="NarrativeText" id="69c4ed1728897f266bed4a53365bcafa">
See section 5,06(2) of Rev. Proc. 84-74 for the required perjury statement that must be attached.
</p>
<p class="NarrativeText" id="7dfd48d6268b5b5a7ee2815aeee3ed4c">
If IRS later examines your return for the year of the change or for later years, it has the right to verify your statement at that time.
</p>
<p class="NarrativeText" id="fb1b9c839bbca33510a6374d1e860e6e">
Item 13, page 2.— Insert the actual number of tax years. Use of the term “since inception” Is not acceptable. However, “more than 6 years” Is acceptable.
</p>
<h1 class="Title" id="3e880cc1372ef2191411caec8044548d">
Section B-1
</h1>
<p class="NarrativeText" id="f239c78f0866a8a41d36370f128676b6">
Item 1b, page 2.—Include any amounts reported as income in a prior year although the income had not been accrued (earned) or received In the prior year; for example, discount on installment loans reported as income for the year In which the loans were made instead of for the year or years in which the income was received or earned. Advance payments under Rev. Proc. 71-21 or Regulations section 1.451-5 must be fully explained and all pertinent information must be submitted with this application.
</p>
<h1 class="Title" id="1f5704b56b007d890b634121c86d81ac">
Sections B-2 and B-3
</h1>
<p class="NarrativeText" id="6720eba15ed08f5d66f8dc84b6a94fa8">
Limitation on the Use of the Cash Method of Accounting.—Except as provided below, C corporations, partnerships with a C corporation as a partner, and tax shelters may not use the cash method of accounting. For purposes of this limitation, a trust subject to the tax on unrelated business Income under section 511 1s treated as aC corporation with respect to its unrelated trade or business activities.
</p>
<p class="NarrativeText" id="454de5bfbdcba4385a21dd6261c57d53">
The limitation on the use of the cash method (except for tax shelters) does not apply to—
</p>
<p class="NarrativeText" id="22e4f1d701efc16645e77991781051f5">
(1) Farming businesses. —For this purpose, the term “farming business” is defined in section 263A(e)(4), but it also includes the raising, harvesting, or growing of trees to which section 263A(c)(5) applies. Notwithstanding this exception, section 447 requires certain C corporations and partnerships with a C corporation as a partner to use the accrual method.
</p>
<p class="NarrativeText" id="7d5701b44f1ad554006cf31e8efeb719">
(2) Qualified personal service corporations. — A “qualified personal service corporation” 1s any corporation: (a) substantially all of the activities of which involve the performance of services In the fields of health, law, engineering, architecture, accounting, actuarial science, performing arts, or consulting, and (b)
</p>
<h1 class="Title" id="80474543fe96478feeda72a22f019cd1">
Page 2
</h1>
<p class="NarrativeText" id="e4776aaec9edf7383c95941623c47ff6">
substantially all of the stock of which is owned by employees performing the services, retired employees who had performed the services, any estate of any individual who had performed the services listed above, or any person who acquired stock of the corporation as a result of the death of an employee or retiree described above if the acquisition occurred within 2 years of death.
</p>
<p class="NarrativeText" id="6ee9a057174e1c9cf99d653ad1c09371">
(3) Entities with gross receipts of $5,000,000 or less. —To qualify for this exception, the C corporations or partnerships annual average gross receipts for the three years ending with the prior tax year may not exceed $5,000,000. If the corporation or partnership was not in existence for the entire 3-year period, the period of existence Is used to determine whether the corporation or partnership qualifies. If any tax year in the 3-year period is a short tax year, the corporation or partnership must annualize the gross receipts by multiplying the gross receipts by 12 and dividing the result by the number of months tn the short period.
</p>
<p class="NarrativeText" id="427e5fe33c8c181ccb93c7de11946c13">
For more information, see section 448 and Temporary Regulations section 1.448-1T.
</p>
<h1 class="Title" id="53f108c0145a6e0ff0c71192756817f3">
Section C
</h1>
<p class="NarrativeText" id="e2f18bc74e6cafcd9692b5daf1849492">
Applicants must give complete details about the present method of valuing inventory and the proposed method. State whether all or part of your inventory ts involved tn the change.
</p>
<p class="NarrativeText" id="215447c644517536b7bda561f7e92994">
Inventories of retail merchants.—The retail method of pricing inventories does not contemplate valuation of goods at the retail selling price. The retail selling price of goods on hand must be reduced to approximate cost or cost or market, whichever is lower, by the adjustments required in Regulations section 1.471-8.
</p>
<p class="NarrativeText" id="73d59612ec830432b4de6df54516bd9c">
LIFO inventory changes.—Attach a schedule with all the required computations when changing the method of figuring LIFO inventories. If you are changing from LIFO to a non-LIFO method, attach a schedule with the following additional information:
</p>
<p class="NarrativeText" id="4d46c2d1fc2022eca60307767c40de5e">
(1) The specific types and classes of goods in the LIFO inventories involved in the proposed changes and the comparative value of such inventories as of the end of the tax year preceding the year of change determined by: (a) the LIFO method, and (b) the proposed method and basis (such as FIFO cost or lower of cost or market).
</p>
<p class="NarrativeText" id="294b1260ca3b5c9f0ba0d989ea96ac31">
(2) State whether the proposed identification and valuation methods conform to the inventory method currently used with respect to non-LIFO Inventories, if any, or how such method is otherwise consistent with Regulations section 1.472-6.
</p>
<p class="NarrativeText" id="38bdbab3ffbac579f7574b14e684ba33">
(3) The termination event statement required by section 5.10 of Rev. Proc. 84-74 and an explanation if there has been a termination event.
</p>
<h1 class="Title" id="0d3dbb4d9cb5acc90997e0e6537b20d8">
Section D
</h1>
<p class="NarrativeText" id="7ee33bcf10d7639196914b65fd469696">
Applicants requesting to change their method of valuing property produced, property acquired for resale, or long-term contracts under section 263A or 460 MUST complete section D showing the treatment under both the present and proposed methods.
</p>
<p class="NarrativeText" id="ac03b00e18c3ba3be848b73947358f1b">
&amp; U.S. Government Printing Office: 1987—201-993/60166
</p>
<h1 class="Title" id="049500f268fce8fc31b6ff3fbd31d0ff">
Section E
</h1>
<p class="NarrativeText" id="8f23a32fb527d5d2c99e6ce9d43a0506">
Section 460(f) provides that the term “long-term contract” means any contract for the manufacturing, building, installation, or construction of property that is not completed within the tax year in which it is entered into. However, a manufacturing contract will not qualify as a long-term contract unless the contract involves the manufacture of: (1)a unique item not normally included in your finished goods inventory, or (2) any item that normally requires more than 12 calendar months to complete.
</p>
<p class="NarrativeText" id="87c912787c7a57a6a9762222b6fad6d0">
All long-term contracts entered into after February 28, 1986, except for real property construction contracts expected to be completed within 2 years by contractors whose average annual gross receipts for the 3 prior tax years do not exceed $10,000,000, must be accounted for using either the percentage of completion- capitalized cost method or the percentage of completion method. See section 460.
</p>
<p class="NarrativeText" id="2930925972d2feeb110c325ffa500b0d">
Caution: At the time these instructions were printed, Congress was considering legislation that would repeal the use of the percentage of completion-capitalized cost method for certain long-term contracts.
</p>
<h1 class="Title" id="4791a3266557b2140bd00383e0175156">
Section G
</h1>
<p class="NarrativeText" id="f4d23d878433825c90ab6e6090d9ece6">
This section ts to be used only to request a change in a method of accounting for depreciation under section 167.
</p>
<p class="NarrativeText" id="2854aca9e6a37d275a60a126e431ef6e">
Rev. Proc. 74-11 provides a procedure whereby applicants are considered to have obtained the consent of the Commissioner to change their method of accounting for depreciation. You must file Form 3115 with the Service Center where your return will be filed within the first 180 days of the tax year in which it is desired to make the change. Attach a copy of the form to the income tax return for the tax year of the change.
</p>
<p class="NarrativeText" id="4fb331478f9a833e74ffd537b02e26d2">
Note: Do not use Form 3115 to make an election under section 168. Such an election may be made only on the tax return for the year in which the property is placed tn service. In addition, Form 3115 is not to be used to request approval to revoke an election made under section 168. Such a request must be made in accordance with Rev. Proc. 87-1 (updated annually).
</p>
<h1 class="Title" id="bffd98608b117004651716ad50fd2aa3">
Section H
</h1>
<p class="NarrativeText" id="8b524af5086ce3b0afc2c395be45ba33">
Generally, this section should be used for requesting changes !n a method of accounting for which provision has not been made elsewhere on this form. Attach additional pages if more space ts needed for a full explanation of the present method used and the proposed change requested.
</p>
<p class="NarrativeText" id="ce1245e8b15f12dac06016bec84193aa">
If you are making an election under section 458, show the applicable information under Regulations section 1.458-10.
</p>
</body>
</html>
@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>
</title>
</head>
<body>
<h1 class="Title" id="6b126b0255ab0d12659889c3d523a5e8">
¥i9) Department of the Treasury Internal Revenue Service Instructions for Form 3115 (Rev. November 1987) Application for Change in Accounting Method
</h1>
<p class="NarrativeText" id="53c329edad597af665506d646581db18">
(Section references are to the Internal Revenue Code unless otherwise noted.)
</p>
<h1 class="Title" id="dc71cf9b39b3b58cf3960cad7a5f390c">
Paperwork Reduction Act Notice
</h1>
<p class="NarrativeText" id="90beb9a0f4b6984d9cfdf68096e114e4">
We ask for this information to carry out the Internal Revenue laws of the United States. We need it to ensure that taxpayers are complying with these laws ang to allow us to figure and collect the right amount of tax. You are required to give us this information.
</p>
<h1 class="Title" id="95f3b1224a44ca83b5aefea67a9fdde4">
General Instructions
</h1>
<h1 class="Title" id="e47c784ca5964c9c81047d1706563c13">
Purpose of Form
</h1>
<p class="NarrativeText" id="16c2e1ce5f6dc7dba82dca9e1a704bed">
File this form to request a change in your accounting method, including the accounting treatment of any item. If you are requesting a change in accounting period, use Form 1128, Application for Change in Accounting Period. For more information, see Publication 538, Accounting Periods and Methods.
</p>
<p class="NarrativeText" id="48aa664e3703b98c15994c97d260c0e3">
When filing Form 3115, taxpayers are reminded to determine if IRS has published a ruling or procedure dealing with the specific type of change since November 1987 (the current revision date of Form 3115).
</p>
<p class="NarrativeText" id="4af565181db0676202636585f9abb438">
Long-term contracts. —If you are required to change your method of accounting for long-term contracts under section 460, see Notice 87-61 (9/21/87), 1987-38 IRB 40, for the notification procedures that must be followed.
</p>
<p class="NarrativeText" id="746483e119190b6ce718ce4715bee6e6">
Other methods.—Unless the Service has published a regulation or procedure to the contrary, all other changes in accounting methods required by the Act are automatically considered to be approved by the Commissioner. Examples of method changes automatically approved by the Commissioner are those changes required to effect: (1) the repeal of the reserve method for bad debts of taxpayers other than financial institutions (Act section 805); (2) the repeal of the installment method for sales under a revolving credit plan (Act section 812); (3) the inclusion of income attributable to the sale or furnishing of utility services no later than the year in which the services were provided to customers (Act section 821); and (4) the repeal of the deduction for qualified discount coupons (Act section 823). Do not file Form 3115 for these changes.
</p>
<p class="NarrativeText" id="fdaf06392be067a41cac854c07a66033">
Generally, applicants must complete Section A. In addition, complete the appropriate sections (B-1 through H) for which a change is desired.
</p>
<p class="NarrativeText" id="6fbfaf2f668ea8e5a161f2f08ec5c002">
You must give all relevant facts, including a detailed description of your present and proposed methods. You must also state the reason(s) you believe approval to make the requested change should be granted. Attach additional pages if more space is needed for explanations. Each page should show your name, address, and identifying number.
</p>
<p class="NarrativeText" id="8135e5970b94dc578aee8841ae069d6c">
State whether you desire a conference in the National Office if the Service proposes to disapprove your application.
</p>
<h1 class="Title" id="4d2011ddb75aecb442fab45c276032ef">
Changes to Accounting Methods Required Under the Tax Reform Act of 1986
</h1>
<p class="NarrativeText" id="1d7c9cb0ba025f28eb4d035bb6447d52">
Uniform capitalization rules and limitation on cash method.—f you are required to change your method of accounting under sectior,263A (relating to the capitalization and inclusion in inventory costs of certain expenses) or 448 (limiting the use of the cash method of accounting by certain taxpayers) as added by the Tax Reform Act of 1986 (“Act”), the change is treated as initiated by the taxpayer, approved by the Commissioner, and the period for taking the adjustments under section 481(a) into account will not exceed 4 years. (Hospitals required to change from the cash method under section 448 have 10 years to take the adjustments into account.) Complete Section A and the appropriate sections (B-1 or C and D) for which the change is required.
</p>
<p class="NarrativeText" id="525b9d3bf3ae575f8e86f62af6068ebd">
Disregard the instructions under Time and Place for Filing and Late Applications. Instead, attach Form 3115 to your income tax return for the year of change; do not file it separately. Also include on a separate statement accompanying the Form 3115 the period over which the section 481(a) adjustment will be taken into account and the basis for that conclusion. Identify the automatic change being made at the top of page 1 of Form 3115 (e.g., “Automatic Change to Accrual Method Section 448"). See Temporary Regulations sections 1.263A-1T and 1.448-1T for additional information.
</p>
<h1 class="Title" id="cea50b5471d79ae4bb35685a83054b03">
Time and Place for Filing
</h1>
<p class="NarrativeText" id="ae8e74a1d77625ba73dd01fe4dc0cdea">
Generally, applicants must file this form within the first 180 days of the tax year in which it is desired to make the change.
</p>
<p class="NarrativeText" id="fd3e2689051b08dfefd978b6fe03a251">
Taxpayers, other than exempt organizations, should file Form 3115 with the Commissioner of Internal Revenue, Attention: CC:C:4, 1111 Constitution Avenue, NW, Washington, OC 20224. Exempt organizations should file with the Assistant Commissioner (Employee Plans and Exempt Organizations), 1111 Constitution Avenue, NW, Washington, DC 20224.
</p>
<p class="NarrativeText" id="09f4d2c426aaa217278d83c17a4bf21e">
You should normally receive an acknowledgment of receipt of your application within 30 days. If you do not hear from IRS within 30 days of submitting your completed Form 3115, you may inquire as to the receipt of your application by writing to: Control Clerk, CC:C:4, Internal Revenue Service, Room 5040, 1111 Constitution Avenue, NW, Washington, DC 20224.
</p>
<p class="NarrativeText" id="8a3eada0238723be2775a7d8c8bd7fc3">
See section 5.03 of Rev. Proc. 84-74 for filing an early application.
</p>
<p class="NarrativeText" id="c2cf6ba6e0a949401e943ce3cec05310">
Note: /f this form is being filed in accordance with Rev. Proc. 74-11, see Section G below.
</p>
<h1 class="Title" id="ceb4948527ce520e2ac219097e279559">
Late Applications
</h1>
<p class="NarrativeText" id="adda4424f1f7ffb84390b6b8c60ac3bd">
If your application is filed after the 180-day period, it 1s late. The application will be considered for processing only upon a showing of “good cause” and if it can be shown to the satisfaction of the Commissioner that granting you an extension will not jeopardize the Government's interests. For further information, see Rev. Proc. 79-63.
</p>
<h1 class="Title" id="2c598855a28fb70d3812979066df72c1">
Identifying Number
</h1>
<p class="NarrativeText" id="923c71f94a011e5def8896cc2aa7120e">
Individuals. —An individual should enter his or her social security number in this block. If the application is made on behalf of a husband and wife who file their income tax return jointly, enter the social security numbers of both.
</p>
<p class="NarrativeText" id="803549fa9207cd4111ed9e5d7389a027">
Others.-—The employer identification number of an applicant other than an individual should be entered in this block.
</p>
<h1 class="Title" id="827994d469f07a1029b4df20ce5250d2">
Signature
</h1>
<p class="NarrativeText" id="f49752a38f790a75872b43214d7b8e0c">
Individuals. —An individual desiring the change should sign the application. If the application pertains to a husband and wife filing a joint income tax return, the names of both should appear in the heading and both should sign.
</p>
<p class="NarrativeText" id="162bb7ebc5019059dc8341f5c44da7ec">
Partnerships.—The form should be signed with the partnership name followed by the signature of one of the general partners and the words “General Partner.”
</p>
<p class="NarrativeText" id="ba5311e456328d16efd5d2f5a8500388">
Corporations, cooperatives, and insurance companies.—The form should show the name of the corporation, cooperative, or insurance company and the signature of the president, vice president, treasurer, assistant treasurer, or chief accounting officer (such as tax officer) authorized to sign, and his or her official title. Receivers, trustees, or assignees must sign any application they are required to file. For a subsidiary corporation filing a consolidated return with its parent, the form should be signed by an officer of the parent corporation.
</p>
<p class="NarrativeText" id="6fe312aeeb0d718a776c177b27265353">
Fiduciaries.—The-form should show the name of the estate or trust and be signed by the fiduciary, personal representative, executor, executrix, administrator, administratrix, etc., having legal authority to sign, and his or her title.
</p>
<p class="NarrativeText" id="152f56dcf3866eaa539ba72ac8d75fb9">
Preparer other than partner, officer, etc.—The signature of the individual preparing the application should appear in the space provided on page 6.
</p>
<p class="NarrativeText" id="a307b5b68c3a9bc21964cee73dc63cd8">
If the individual or firm is also authorized to represent the applicant before the IRS, receive a copy of the requested ruling, or perform any other act(s), the power of attorney must reflect such authorization(s).
</p>
<h1 class="Title" id="9d2f8114fae7804e0a77156b96178634">
Affiliated Groups
</h1>
<p class="NarrativeText" id="2828c2fe4b4eaa125fa2c5fe769da965">
Taxpayers that are members of an affiliated group filing a consolidated return that seeks to change to the same accounting method for more than one member of the group must file a separate Form 3115 for each such member.
</p>
<h1 class="Title" id="b79579cd4f3a315ab6216eaa35322bfd">
Specific Instructions
</h1>
<h1 class="Title" id="e496c40a33c8808e99c1bd61c72a574d">
Section A
</h1>
<p class="NarrativeText" id="ce36a381c0fb31df90d3d701b9b5ee2a">
Item 5a, page 1.—“Taxable income or (loss) from operations” is to be entered before application of any net operating loss deduction under section 172(a).
</p>
<p class="NarrativeText" id="f7876eba5d8a77571828d215aab6bf34">
Item 6, page 2.—The term “gross receipts” includes total sales (net of returns and allowances) and all amounts received for services. In addition, gross receipts include any income from investments and from incidental or outside sources (e.g., interest, dividends, rents, royalties, and annuities). However, if you area resaler of personal property, exclude from gross receipts any amounts not derived in the ordinary course of a trade or business. Gross receipts do not include amounts received for sales taxes if, under the applicable state or local law, the tax is legatly imposed on the purchaser of the good or service, and the taxpayer merely collects and remits the tax to the taxing authority.
</p>
<p class="NarrativeText" id="baf5040c1ebd03c23f1210ec383970db">
Item 7b, page 2.—If item 7b 1s “Yes,” indicate ona separate sheet the following for each separate trade or business: Nature of business
</p>
</body>
</html>
@@ -0,0 +1,431 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>
</title>
</head>
<body>
<p class="UncategorizedText" id="65783c5f96432bd7fe68309b620d039c">
Network Working Group J. Postel Request for Comments: 854 J. Reynolds ISI Obsoletes: NIC 18639 May 1983
</p>
<h1 class="Title" id="7ec33e6e1fcb9471b9ca790a59c71fcf">
TELNET PROTOCOL SPECIFICATION
</h1>
<p class="NarrativeText" id="fd97ade6fea37e840ab59316a2c91314">
This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet are expected to adopt and implement this standard.
</p>
<h1 class="Title" id="0661672d3c5ec5c9cf4174c4d1026b09">
INTRODUCTION
</h1>
<p class="NarrativeText" id="647a62884e70fb48d66814696b0ab897">
The purpose of the TELNET Protocol is to provide a fairly general, bi-directional, eight-bit byte oriented communications facility. Its primary goal is to allow a standard method of interfacing terminal devices and terminal-oriented processes to each other. It is envisioned that the protocol may also be used for terminal-terminal communication ("linking") and process-process communication (distributed computation).
</p>
<h1 class="Title" id="5f3d9d91bb3b5b816c8a7ef08ecffe3d">
GENERAL CONSIDERATIONS
</h1>
<p class="NarrativeText" id="4d428190fc7fca97cb7467c4b0e45e83">
A TELNET connection is a Transmission Control Protocol (TCP) connection used to transmit data with interspersed TELNET control information.
</p>
<p class="NarrativeText" id="cf93a26711c927e9698cc536bcb1820b">
The TELNET Protocol is built upon three main ideas: first, the concept of a "Network Virtual Terminal"; second, the principle of negotiated options; and third, a symmetric view of terminals and processes.
</p>
<li class="ListItem" id="717404910d490d67e42cc895767fedb2">
1. When a TELNET connection is first established, each end is assumed to originate and terminate at a "Network Virtual Terminal", or NVT. An NVT is an imaginary device which provides a standard, network-wide, intermediate representation of a canonical terminal. This eliminates the need for "server" and "user" hosts to keep information about the characteristics of each other's terminals and terminal handling conventions. All hosts, both user and server, map their local device characteristics and conventions so as to appear to be dealing with an NVT over the network, and each can assume a similar mapping by the other party. The NVT is intended to strike a balance between being overly restricted (not providing hosts a rich enough vocabulary for mapping into their local character sets), and being overly inclusive (penalizing users with modest terminals).
</li>
<p class="NarrativeText" id="84729a689a78d3b376e01afef5eb499b">
NOTE: The "user" host is the host to which the physical terminal is normally attached, and the "server" host is the host which is normally providing some service. As an alternate point of view,
</p>
<p class="UncategorizedText" id="55aaeedec745102933163d43747b7abb">
Postel &amp; Reynolds [Page 1]
</p>
<p class="UncategorizedText" id="40eceaad7fbe1a5d37786cfef9ff0ff8">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="6c9bd938aa5808ff458fc2079089e18a">
applicable even in terminal-to-terminal or process-to-process communications, the "user" host is the host which initiated the communication.
</p>
<li class="ListItem" id="4b094a0eff777fce3c819a7f240760ca">
2. The principle of negotiated options takes cognizance of the fact that many hosts will wish to provide additional services over and above those available within an NVT, and many users will have sophisticated terminals and would like to have elegant, rather than minimal, services. Independent of, but structured within the TELNET Protocol are various "options" that will be sanctioned and may be used with the "DO, DON'T, WILL, WON'T" structure (discussed below) to allow a user and server to agree to use a more elaborate (or perhaps just different) set of conventions for their TELNET connection. Such options could include changing the character set, the echo mode, etc.
</li>
<p class="NarrativeText" id="884ec5e72af70723eb2efc80f42508ff">
The basic strategy for setting up the use of options is to have either party (or both) initiate a request that some option take effect. The other party may then either accept or reject the request. If the request is accepted the option immediately takes effect; if it is rejected the associated aspect of the connection remains as specified for an NVT. Clearly, a party may always refuse a request to enable, and must never refuse a request to disable some option since all parties must be prepared to support the NVT.
</p>
<p class="NarrativeText" id="48126945ebf491304faf9cc60d5bc4e4">
The syntax of option negotiation has been set up so that if both parties request an option simultaneously, each will see the other's request as the positive acknowledgment of its own.
</p>
<li class="ListItem" id="0181c0b05baca35b14c1eef5c5d8dd86">
3. The symmetry of the negotiation syntax can potentially lead to nonterminating acknowledgment loops -- each party seeing the incoming commands not as acknowledgments but as new requests which must be acknowledged. To prevent such loops, the following rules prevail:
</li>
<p class="NarrativeText" id="1cea7b129d4039aa1ab6a6bb6f55d35f">
a. Parties may only request a change in option status; i.e., a party may not send out a "request" merely to announce what mode it is in.
</p>
<p class="NarrativeText" id="322ecfd0741e4e42446517325414e5b6">
b. If a party receives what appears to be a request to enter some mode it is already in, the request should not be acknowledged. This non-response is essential to prevent endless loops in the negotiation. It is required that a response be sent to requests for a change of mode -- even if the mode is not changed.
</p>
<p class="NarrativeText" id="35478d889f81c38e6a8bc021c85de82f">
c. Whenever one party sends an option command to a second party, whether as a request or an acknowledgment, and use of the option will have any effect on the processing of the data being sent from the first party to the second, then the command must be inserted in the data stream at the point where it is desired that it take
</p>
<p class="UncategorizedText" id="818a85a5728064919b4e6ff925b58c2c">
Postel &amp; Reynolds [Page 2]
</p>
<p class="UncategorizedText" id="9e2f2d8e30ed3dd95e09a229b56f1c9e">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="a5d39cc694b37ea04f2ccdd49d022bec">
effect. (It should be noted that some time will elapse between the transmission of a request and the receipt of an acknowledgment, which may be negative. Thus, a host may wish to buffer data, after requesting an option, until it learns whether the request is accepted or rejected, in order to hide the "uncertainty period" from the user.)
</p>
<p class="NarrativeText" id="c686d55ac5718ed9066f7e5ec6f89f08">
Option requests are likely to flurry back and forth when a TELNET connection is first established, as each party attempts to get the best possible service from the other party. Beyond that, however, options can be used to dynamically modify the characteristics of the connection to suit changing local conditions. For example, the NVT, as will be explained later, uses a transmission discipline well suited to the many "line at a time" applications such as BASIC, but poorly suited to the many "character at a time" applications such as NLS. A server might elect to devote the extra processor overhead required for a "character at a time" discipline when it was suitable for the local process and would negotiate an appropriate option. However, rather than then being permanently burdened with the extra processing overhead, it could switch (i.e., negotiate) back to NVT when the detailed control was no longer necessary.
</p>
<p class="NarrativeText" id="63af424472a0a15b145b4530f1dbbf5c">
It is possible for requests initiated by processes to stimulate a nonterminating request loop if the process responds to a rejection by merely re-requesting the option. To prevent such loops from occurring, rejected requests should not be repeated until something changes. Operationally, this can mean the process is running a different program, or the user has given another command, or whatever makes sense in the context of the given process and the given option. A good rule of thumb is that a re-request should only occur as a result of subsequent information from the other end of the connection or when demanded by local human intervention.
</p>
<p class="NarrativeText" id="57cce01afb5218dd609ce3eeab822f3e">
Option designers should not feel constrained by the somewhat limited syntax available for option negotiation. The intent of the simple syntax is to make it easy to have options -- since it is correspondingly easy to profess ignorance about them. If some particular option requires a richer negotiation structure than possible within "DO, DON'T, WILL, WON'T", the proper tack is to use "DO, DON'T, WILL, WON'T" to establish that both parties understand the option, and once this is accomplished a more exotic syntax can be used freely. For example, a party might send a request to alter (establish) line length. If it is accepted, then a different syntax can be used for actually negotiating the line length -- such a "sub-negotiation" might include fields for minimum allowable, maximum allowable and desired line lengths. The important concept is that
</p>
<p class="UncategorizedText" id="25b564d4c27fe2ed4ef03e0ba0eb9d85">
Postel &amp; Reynolds [Page 3]
</p>
<p class="UncategorizedText" id="280f60c34402766f62997bb7d74eadf3">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="318131924429cce06494b3ca25351557">
such expanded negotiations should never begin until some prior (standard) negotiation has established that both parties are capable of parsing the expanded syntax.
</p>
<p class="NarrativeText" id="7f896d8c0c90d6042843d80b5a47f7e3">
In summary, WILL XXX is sent, by either party, to indicate that party's desire (offer) to begin performing option XXX, DO XXX and DON'T XXX being its positive and negative acknowledgments; similarly, DO XXX is sent to indicate a desire (request) that the other party (i.e., the recipient of the DO) begin performing option XXX, WILL XXX and WON'T XXX being the positive and negative acknowledgments. Since the NVT is what is left when no options are enabled, the DON'T and WON'T responses are guaranteed to leave the connection in a state which both ends can handle. Thus, all hosts may implement their TELNET processes to be totally unaware of options that are not supported, simply returning a rejection to (i.e., refusing) any option request that cannot be understood.
</p>
<p class="NarrativeText" id="477da82b29de29c233ff71d9ef190812">
As much as possible, the TELNET protocol has been made server-user symmetrical so that it easily and naturally covers the user-user (linking) and server-server (cooperating processes) cases. It is hoped, but not absolutely required, that options will further this intent. In any case, it is explicitly acknowledged that symmetry is an operating principle rather than an ironclad rule.
</p>
<p class="NarrativeText" id="32872f7efe12aff30d8a63a79c83d968">
A companion document, "TELNET Option Specifications," should be consulted for information about the procedure for establishing new options.
</p>
<h1 class="Title" id="84ead4d480198af96d5c5b0e0dbf89d4">
THE NETWORK VIRTUAL TERMINAL
</h1>
<p class="NarrativeText" id="64f30d40e6892c7999c5cdfcfb5e487b">
The Network Virtual Terminal (NVT) is a bi-directional character device. The NVT has a printer and a keyboard. The printer responds to incoming data and the keyboard produces outgoing data which is sent over the TELNET connection and, if "echoes" are desired, to the NVT's printer as well. "Echoes" will not be expected to traverse the network (although options exist to enable a "remote" echoing mode of operation, no host is required to implement this option). The code set is seven-bit USASCII in an eight-bit field, except as modified herein. Any code conversion and timing considerations are local problems and do not affect the NVT.
</p>
<h1 class="Title" id="086f03a735ce878231ad37cbf4b317c4">
TRANSMISSION OF DATA
</h1>
<p class="NarrativeText" id="6b4dd25ec8866269ed9c92ad29eb8b6c">
Although a TELNET connection through the network is intrinsically full duplex, the NVT is to be viewed as a half-duplex device operating in a line-buffered mode. That is, unless and until
</p>
<p class="UncategorizedText" id="8c0adda7630fc7f9ab50c842748b4e17">
Postel &amp; Reynolds [Page 4]
</p>
<p class="UncategorizedText" id="87658b0f8d69675bdde58c7391a08c48">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="8c1353adf09b23347436b4474c769743">
options are negotiated to the contrary, the following default conditions pertain to the transmission of data over the TELNET connection:
</p>
<li class="ListItem" id="e7ddc718279e45fdb301585e3e2740ee">
1) Insofar as the availability of local buffer space permits, data should be accumulated in the host where it is generated until a complete line of data is ready for transmission, or until some locally-defined explicit signal to transmit occurs. This signal could be generated either by a process or by a human user.
</li>
<p class="NarrativeText" id="fa1690a85361eab491bafb085f1fb45d">
The motivation for this rule is the high cost, to some hosts, of processing network input interrupts, coupled with the default NVT specification that "echoes" do not traverse the network. Thus, it is reasonable to buffer some amount of data at its source. Many systems take some processing action at the end of each input line (even line printers or card punches frequently tend to work this way), so the transmission should be triggered at the end of a line. On the other hand, a user or process may sometimes find it necessary or desirable to provide data which does not terminate at the end of a line; therefore implementers are cautioned to provide methods of locally signaling that all buffered data should be transmitted immediately.
</p>
<li class="ListItem" id="e55b99b7b8020a53a25204ee268cac06">
2) When a process has completed sending data to an NVT printer and has no queued input from the NVT keyboard for further processing (i.e., when a process at one end of a TELNET connection cannot proceed without input from the other end), the process must transmit the TELNET Go Ahead (GA) command.
</li>
<p class="NarrativeText" id="c3a0ec4a25961e41bc7e4b49e3e08bcf">
This rule is not intended to require that the TELNET GA command be sent from a terminal at the end of each line, since server hosts do not normally require a special signal (in addition to end-of-line or other locally-defined characters) in order to commence processing. Rather, the TELNET GA is designed to help a user's local host operate a physically half duplex terminal which has a "lockable" keyboard such as the IBM 2741. A description of this type of terminal may help to explain the proper use of the GA command.
</p>
<p class="NarrativeText" id="eedfd12841153c81bf5eb6d2171c41dd">
The terminal-computer connection is always under control of either the user or the computer. Neither can unilaterally seize control from the other; rather the controlling end must relinguish its control explicitly. At the terminal end, the hardware is constructed so as to relinquish control each time that a "line" is terminated (i.e., when the "New Line" key is typed by the user). When this occurs, the attached (local)
</p>
<p class="UncategorizedText" id="1bfcf8e4a08c25391c6a112c6a096317">
Postel &amp; Reynolds [Page 5]
</p>
<p class="UncategorizedText" id="15dc73e83113089c2886d0dfce10005c">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="f33b9813c23a58a9797363806abb6097">
computer processes the input data, decides if output should be generated, and if not returns control to the terminal. If output should be generated, control is retained by the computer until all output has been transmitted.
</p>
<p class="NarrativeText" id="3cb6c0dd58c764953c36757e231dfe28">
The difficulties of using this type of terminal through the network should be obvious. The "local" computer is no longer able to decide whether to retain control after seeing an end-of-line signal or not; this decision can only be made by the "remote" computer which is processing the data. Therefore, the TELNET GA command provides a mechanism whereby the "remote" (server) computer can signal the "local" (user) computer that it is time to pass control to the user of the terminal. It should be transmitted at those times, and only at those times, when the user should be given control of the terminal. Note that premature transmission of the GA command may result in the blocking of output, since the user is likely to assume that the transmitting system has paused, and therefore he will fail to turn the line around manually.
</p>
<p class="NarrativeText" id="e72bb98b45fcd1f2a7eb9af4df4634ba">
The foregoing, of course, does not apply to the user-to-server direction of communication. In this direction, GAs may be sent at any time, but need not ever be sent. Also, if the TELNET connection is being used for process-to-process communication, GAs need not be sent in either direction. Finally, for terminal-to-terminal communication, GAs may be required in neither, one, or both directions. If a host plans to support terminal-to-terminal communication it is suggested that the host provide the user with a means of manually signaling that it is time for a GA to be sent over the TELNET connection; this, however, is not a requirement on the implementer of a TELNET process.
</p>
<p class="NarrativeText" id="3c0352a01510cecab50b23577ffb8e44">
Note that the symmetry of the TELNET model requires that there is an NVT at each end of the TELNET connection, at least conceptually.
</p>
<h1 class="Title" id="13f02e503d4239d24287d7b5bae43d38">
STANDARD REPRESENTATION OF CONTROL FUNCTIONS
</h1>
<p class="NarrativeText" id="60504b1262c36d7a4a815d94b9889b29">
As stated in the Introduction to this document, the primary goal of the TELNET protocol is the provision of a standard interfacing of terminal devices and terminal-oriented processes through the network. Early experiences with this type of interconnection have shown that certain functions are implemented by most servers, but that the methods of invoking these functions differ widely. For a human user who interacts with several server systems, these differences are highly frustrating. TELNET, therefore, defines a standard representation for five of these functions, as described
</p>
<p class="UncategorizedText" id="b83f9f35c49a176bd85514041242e219">
Postel &amp; Reynolds [Page 6]
</p>
<p class="UncategorizedText" id="7b4e28597e9b6ca7a23a59f84ef9ca63">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="6ead9611a9b4dbba8956f95946c7e1c7">
below. These standard representations have standard, but not required, meanings (with the exception that the Interrupt Process (IP) function may be required by other protocols which use TELNET); that is, a system which does not provide the function to local users need not provide it to network users and may treat the standard representation for the function as a No-operation. On the other hand, a system which does provide the function to a local user is obliged to provide the same function to a network user who transmits the standard representation for the function.
</p>
<h1 class="Title" id="be88ea677b8af38f0a932f20d0d718a9">
Interrupt Process (IP)
</h1>
<p class="NarrativeText" id="c32abfa87c1157bfb77748147df22061">
Many systems provide a function which suspends, interrupts, aborts, or terminates the operation of a user process. This function is frequently used when a user believes his process is in an unending loop, or when an unwanted process has been inadvertently activated. IP is the standard representation for invoking this function. It should be noted by implementers that IP may be required by other protocols which use TELNET, and therefore should be implemented if these other protocols are to be supported.
</p>
<h1 class="Title" id="da98565159183843e2a3cd2b787b27c9">
Abort Output (AO)
</h1>
<p class="NarrativeText" id="e3d688a48d02ff7b5f1d97decd238326">
Many systems provide a function which allows a process, which is generating output, to run to completion (or to reach the same stopping point it would reach if running to completion) but without sending the output to the user's terminal. Further, this function typically clears any output already produced but not yet actually printed (or displayed) on the user's terminal. AO is the standard representation for invoking this function. For example, some subsystem might normally accept a user's command, send a long text string to the user's terminal in response, and finally signal readiness to accept the next command by sending a "prompt" character (preceded by &lt;CR&gt;&lt;LF&gt;) to the user's terminal. If the AO were received during the transmission of the text string, a reasonable implementation would be to suppress the remainder of the text string, but transmit the prompt character and the preceding &lt;CR&gt;&lt;LF&gt;. (This is possibly in distinction to the action which might be taken if an IP were received; the IP might cause suppression of the text string and an exit from the subsystem.)
</p>
<p class="NarrativeText" id="273bf4175279d66e5648c0ce9afe6b0f">
It should be noted, by server systems which provide this function, that there may be buffers external to the system (in
</p>
<p class="UncategorizedText" id="c1ce1c9be0308cc1fc79bc38acb421e3">
Postel &amp; Reynolds [Page 7]
</p>
<p class="UncategorizedText" id="cd0dcf72f199ef70cf1cf785933e7e8c">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="e2e06e8b355eae849878d3b6a33aee85">
the network and the user's local host) which should be cleared; the appropriate way to do this is to transmit the "Synch" signal (described below) to the user system.
</p>
<h1 class="Title" id="6bb8ee02861cbf67b36254869a2be8e5">
Are You There (AYT)
</h1>
<p class="NarrativeText" id="79e9ff2f4d86a3e43476b6078bc21f89">
Many systems provide a function which provides the user with some visible (e.g., printable) evidence that the system is still up and running. This function may be invoked by the user when the system is unexpectedly "silent" for a long time, because of the unanticipated (by the user) length of a computation, an unusually heavy system load, etc. AYT is the standard representation for invoking this function.
</p>
<h1 class="Title" id="db636fdc95fe405f65bd80fc12579bf8">
Erase Character (EC)
</h1>
<p class="NarrativeText" id="f2e6914cffc6cd2ab4e789859be92b8c">
Many systems provide a function which deletes the last preceding undeleted character or "print position"* from the stream of data being supplied by the user. This function is typically used to edit keyboard input when typing mistakes are made. EC is the standard representation for invoking this function.
</p>
<li class="ListItem" id="3d71191e551eeff6e917b1fe637cf149">
NOTE: A "print position" may contain several characters which are the result of overstrikes, or of sequences such as &lt;char1&gt; BS &lt;char2&gt;...
</li>
<h1 class="Title" id="430985f34534c2a51e451ba45ba6bc06">
Erase Line (EL)
</h1>
<p class="NarrativeText" id="801bc4779d3e1f9aac432ac1d7062359">
Many systems provide a function which deletes all the data in the current "line" of input. This function is typically used to edit keyboard input. EL is the standard representation for invoking this function.
</p>
<h1 class="Title" id="dd2a763ac46619c129568e5b068e0b5f">
THE TELNET "SYNCH" SIGNAL
</h1>
<p class="NarrativeText" id="0e2510601de541d3350290ad08cfdd96">
Most time-sharing systems provide mechanisms which allow a terminal user to regain control of a "runaway" process; the IP and AO functions described above are examples of these mechanisms. Such systems, when used locally, have access to all of the signals supplied by the user, whether these are normal characters or special "out of band" signals such as those supplied by the teletype "BREAK" key or the IBM 2741 "ATTN" key. This is not necessarily true when terminals are connected to the system through the network; the network's flow control mechanisms may cause such a signal to be buffered elsewhere, for example in the user's host.
</p>
<p class="UncategorizedText" id="e7982bce163a5d73231794c680d355b2">
Postel &amp; Reynolds [Page 8]
</p>
<p class="UncategorizedText" id="d20ff1f758133e892121fed5cb4d6a0a">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="55141a20286b1e1c70417513e09ea05c">
To counter this problem, the TELNET "Synch" mechanism is introduced. A Synch signal consists of a TCP Urgent notification, coupled with the TELNET command DATA MARK. The Urgent notification, which is not subject to the flow control pertaining to the TELNET connection, is used to invoke special handling of the data stream by the process which receives it. In this mode, the data stream is immediately scanned for "interesting" signals as defined below, discarding intervening data. The TELNET command DATA MARK (DM) is the synchronizing mark in the data stream which indicates that any special signal has already occurred and the recipient can return to normal processing of the data stream.
</p>
<p class="NarrativeText" id="2ae0117d8852c34228c2067896a1959f">
The Synch is sent via the TCP send operation with the Urgent flag set and the DM as the last (or only) data octet.
</p>
<p class="NarrativeText" id="811e593063f922ec23ca4086bf721756">
When several Synchs are sent in rapid succession, the Urgent notifications may be merged. It is not possible to count Urgents since the number received will be less than or equal the number sent. When in normal mode, a DM is a no operation; when in urgent mode, it signals the end of the urgent processing.
</p>
<p class="NarrativeText" id="d6a66cbe761bcff61954c70df02559c6">
If TCP indicates the end of Urgent data before the DM is found, TELNET should continue the special handling of the data stream until the DM is found.
</p>
<p class="NarrativeText" id="89e04790172238dd134938e4e3636e29">
If TCP indicates more Urgent data after the DM is found, it can only be because of a subsequent Synch. TELNET should continue the special handling of the data stream until another DM is found.
</p>
<p class="NarrativeText" id="957e4cbd3cf03c9c2b704514dceccd8e">
"Interesting" signals are defined to be: the TELNET standard representations of IP, AO, and AYT (but not EC or EL); the local analogs of these standard representations (if any); all other TELNET commands; other site-defined signals which can be acted on without delaying the scan of the data stream.
</p>
<p class="NarrativeText" id="b26203ad2a3a766e28a2c570a2ec730f">
Since one effect of the SYNCH mechanism is the discarding of essentially all characters (except TELNET commands) between the sender of the Synch and its recipient, this mechanism is specified as the standard way to clear the data path when that is desired. For example, if a user at a terminal causes an AO to be transmitted, the server which receives the AO (if it provides that function at all) should return a Synch to the user.
</p>
<p class="NarrativeText" id="d92ec560295df1cd2860c29e93954e3b">
Finally, just as the TCP Urgent notification is needed at the TELNET level as an out-of-band signal, so other protocols which make use of TELNET may require a TELNET command which can be viewed as an out-of-band signal at a different level.
</p>
<p class="UncategorizedText" id="ff2e7867d0b5e1258902d2f5a246192c">
Postel &amp; Reynolds [Page 9]
</p>
<p class="UncategorizedText" id="675dc0cb902ab777b7a4baa2f1deded7">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="e69e5cc3ec4fe9668f3bc3cb562f7a99">
By convention the sequence [IP, Synch] is to be used as such a signal. For example, suppose that some other protocol, which uses TELNET, defines the character string STOP analogously to the TELNET command AO. Imagine that a user of this protocol wishes a server to process the STOP string, but the connection is blocked because the server is processing other commands. The user should instruct his system to:
</p>
<li class="ListItem" id="10888bdd4b90e27173866401ed1fc05a">
1. Send the TELNET IP character;
</li>
<li class="ListItem" id="4f2ac242b6db9556d86c383f46016ea8">
2. Send the TELNET SYNC sequence, that is:
</li>
<p class="NarrativeText" id="a5a6931db4c8b5766dd0134659f3021f">
Send the Data Mark (DM) as the only character in a TCP urgent mode send operation.
</p>
<li class="ListItem" id="12f3eded1448a64506edd348ac0d6d63">
3. Send the character string STOP; and
</li>
<li class="ListItem" id="586e5aea255297ac41330b1743e0e59a">
4. Send the other protocol's analog of the TELNET DM, if any.
</li>
<p class="NarrativeText" id="5fc371f19a06f1a6a70beb2f7ccf8571">
The user (or process acting on his behalf) must transmit the TELNET SYNCH sequence of step 2 above to ensure that the TELNET IP gets through to the server's TELNET interpreter.
</p>
<p class="NarrativeText" id="1065c23d5c06fddad3995940a2711174">
The Urgent should wake up the TELNET process; the IP should wake up the next higher level process.
</p>
<h1 class="Title" id="d5df89a348ea7e1fd62000163d1a55d0">
THE NVT PRINTER AND KEYBOARD
</h1>
<p class="NarrativeText" id="12f36d742aa78b8c9d6b6d93033845ca">
The NVT printer has an unspecified carriage width and page length and can produce representations of all 95 USASCII graphics (codes 32 through 126). Of the 33 USASCII control codes (0 through 31 and 127), and the 128 uncovered codes (128 through 255), the following have specified meaning to the NVT printer:
</p>
<p class="UncategorizedText" id="8ac02faf16fc3c4a6d3f88a02b4ae27f">
NAME CODE MEANING
</p>
<p class="NarrativeText" id="557f7b6c5513b61ca2df1cb23bbac1f4">
NULL (NUL) 0 No Operation Line Feed (LF) 10 Moves the printer to the next print line, keeping the same horizontal position. Carriage Return (CR) 13 Moves the printer to the left margin of the current line.
</p>
<p class="UncategorizedText" id="0ae8b967fd1c9509f077c38620040306">
Postel &amp; Reynolds [Page 10]
</p>
<p class="UncategorizedText" id="08e6182a4bde5760868620cc8975b965">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="6aa7a921dffbeb9997e2f99f246bc9b4">
In addition, the following codes shall have defined, but not required, effects on the NVT printer. Neither end of a TELNET connection may assume that the other party will take, or will have taken, any particular action upon receipt or transmission of these:
</p>
<p class="NarrativeText" id="d47ba0a2d98dc4998aa102b6c86a8dde">
BELL (BEL) 7 Produces an audible or visible signal (which does NOT move the print head). Back Space (BS) 8 Moves the print head one character position towards the left margin. Horizontal Tab (HT) 9 Moves the printer to the next horizontal tab stop. It remains unspecified how either party determines or establishes where such tab stops are located. Vertical Tab (VT) 11 Moves the printer to the next vertical tab stop. It remains unspecified how either party determines or establishes where such tab stops are located. Form Feed (FF) 12 Moves the printer to the top of the next page, keeping the same horizontal position.
</p>
<p class="NarrativeText" id="d00a4ce79296813ee4e4042acfd0d9ce">
All remaining codes do not cause the NVT printer to take any action.
</p>
<p class="NarrativeText" id="dfb669280b99388a6ba3a1d0415ccae5">
The sequence "CR LF", as defined, will cause the NVT to be positioned at the left margin of the next print line (as would, for example, the sequence "LF CR"). However, many systems and terminals do not treat CR and LF independently, and will have to go to some effort to simulate their effect. (For example, some terminals do not have a CR independent of the LF, but on such terminals it may be possible to simulate a CR by backspacing.) Therefore, the sequence "CR LF" must be treated as a single "new line" character and used whenever their combined action is intended; the sequence "CR NUL" must be used where a carriage return alone is actually desired; and the CR character must be avoided in other contexts. This rule gives assurance to systems which must decide whether to perform a "new line" function or a multiple-backspace that the TELNET stream contains a character following a CR that will allow a rational decision.
</p>
<p class="NarrativeText" id="70e22606b78c619e4a9dfb1faf383f96">
Note that "CR LF" or "CR NUL" is required in both directions
</p>
<p class="UncategorizedText" id="6a5edf0f964ee78a98aa3c12c03421ba">
Postel &amp; Reynolds [Page 11]
</p>
<p class="UncategorizedText" id="091a59aaa3065d618052e90b63558a98">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="e5326bb86bd9913c51db73dc5c30fafc">
(in the default ASCII mode), to preserve the symmetry of the NVT model. Even though it may be known in some situations (e.g., with remote echo and suppress go ahead options in effect) that characters are not being sent to an actual printer, nonetheless, for the sake of consistency, the protocol requires that a NUL be inserted following a CR not followed by a LF in the data stream. The converse of this is that a NUL received in the data stream after a CR (in the absence of options negotiations which explicitly specify otherwise) should be stripped out prior to applying the NVT to local character set mapping.
</p>
<p class="NarrativeText" id="ca80e8b4d35e0941039c5be64635f5d4">
The NVT keyboard has keys, or key combinations, or key sequences, for generating all 128 USASCII codes. Note that although many have no effect on the NVT printer, the NVT keyboard is capable of generating them.
</p>
<p class="NarrativeText" id="a47459eef3dc63604885b07896fd1b68">
In addition to these codes, the NVT keyboard shall be capable of generating the following additional codes which, except as noted, have defined, but not reguired, meanings. The actual code assignments for these "characters" are in the TELNET Command section, because they are viewed as being, in some sense, generic and should be available even when the data stream is interpreted as being some other character set.
</p>
<h1 class="Title" id="8b1427e31e6da67f1d38362792d9a201">
Synch
</h1>
<p class="NarrativeText" id="c3e98aa8358ee9945b42c96e0768b4b9">
This key allows the user to clear his data path to the other party. The activation of this key causes a DM (see command section) to be sent in the data stream and a TCP Urgent notification is associated with it. The pair DM-Urgent is to have required meaning as defined previously.
</p>
<h1 class="Title" id="10d78583717b41072021de8c33b39a9a">
Break (BRK)
</h1>
<p class="NarrativeText" id="a73e3519b3ac60dce158b8243bb8ffe7">
This code is provided because it is a signal outside the USASCII set which is currently given local meaning within many systems. It is intended to indicate that the Break Key or the Attention Key was hit. Note, however, that this is intended to provide a 129th code for systems which require it, not as a synonym for the IP standard representation.
</p>
<h1 class="Title" id="c0a136025b1cbb6c28259be5b5cf439f">
Interrupt Process (IP)
</h1>
<p class="NarrativeText" id="0d376da880a31c5508506e31c6db5b97">
Suspend, interrupt, abort or terminate the process to which the NVT is connected. Also, part of the out-of-band signal for other protocols which use TELNET.
</p>
<p class="UncategorizedText" id="94088dccef5d76c8c68571bea21657d0">
Postel &amp; Reynolds [Page 12]
</p>
<p class="UncategorizedText" id="a5ab0b06b901c57b5cf9a037b5fa7099">
RFC 854 May 1983
</p>
<h1 class="Title" id="e83b459128c460f38f2c0c4975b5aded">
Abort Output (AO)
</h1>
<p class="NarrativeText" id="6fa4f74fc925fbacf41b5cb694f1ca0f">
Allow the current process to (appear to) run to completion, but do not send its output to the user. Also, send a Synch to the user.
</p>
<h1 class="Title" id="e66716fc6316be88790cafe7a8ce81a5">
Are You There (AYT)
</h1>
<p class="NarrativeText" id="7d5e72d504efea5078d67e6f9b31c653">
Send back to the NVT some visible (i.e., printable) evidence that the AYT was received.
</p>
<h1 class="Title" id="3aec51ffe2874a447eb4ff5e29efe102">
Erase Character (EC)
</h1>
<p class="NarrativeText" id="165a5570effad51acc0a51ff8c073659">
The recipient should delete the last preceding undeleted character or "print position" from the data stream.
</p>
<h1 class="Title" id="1881924bde2fd807ab24c67e9ec731ab">
Erase Line (EL)
</h1>
<p class="NarrativeText" id="db6276261225ce210819e214dabc00aa">
The recipient should delete characters from the data stream back to, but not including, the last "CR LF" sequence sent over the TELNET connection.
</p>
<p class="NarrativeText" id="4be9003529197d95e10aba27cec8e02c">
The spirit of these "extra" keys, and also the printer format effectors, is that they should represent a natural extension of the mapping that already must be done from "NVT" into "local". Just as the NVT data byte 68 (104 octal) should be mapped into whatever the local code for "uppercase D" is, so the EC character should be mapped into whatever the local "Erase Character" function is. Further, just as the mapping for 124 (174 octal) is somewhat arbitrary in an environment that has no "vertical bar" character, the EL character may have a somewhat arbitrary mapping (or none at all) if there is no local "Erase Line" facility. Similarly for format effectors: if the terminal actually does have a "Vertical Tab", then the mapping for VT is obvious, and only when the terminal does not have a vertical tab should the effect of VT be unpredictable.
</p>
<h1 class="Title" id="b8bef5fff5c0be4a0bb4ab483faeb6d7">
TELNET COMMAND STRUCTURE
</h1>
<p class="NarrativeText" id="74af80a8c63837edc7023979403daa6f">
All TELNET commands consist of at least a two byte sequence: the "Interpret as Command" (IAC) escape character followed by the code for the command. The commands dealing with option negotiation are three byte sequences, the third byte being the code for the option referenced. This format was chosen so that as more comprehensive use of the "data space" is made -- by negotiations from the basic NVT, of course -- collisions of data bytes with reserved command values will be minimized, all such collisions requiring the inconvenience, and
</p>
<p class="UncategorizedText" id="35cd2a167c787ccf40c4960ec2c6cacc">
Postel &amp; Reynolds [Page 13]
</p>
<p class="UncategorizedText" id="4dd43bc8f2d115c260aef8ed60c6e8a9">
RFC 854 May 1983
</p>
<p class="NarrativeText" id="7c5565629536f483459eb868def9d563">
inefficiency, of "escaping" the data bytes into the stream. With the current set-up, only the IAC need be doubled to be sent as data, and the other 255 codes may be passed transparently.
</p>
<p class="NarrativeText" id="5fe9b313b0af4644c675840c9767e472">
The following are the defined TELNET commands. Note that these codes and code sequences have the indicated meaning only when immediately preceded by an IAC.
</p>
<p class="UncategorizedText" id="bac724eef73a999323c2ad5fb44ba0f7">
NAME CODE MEANING
</p>
<p class="NarrativeText" id="057faab17e391f9807a6ea3959c59af6">
SE 240 End of subnegotiation parameters. NOP 241 No operation. Data Mark 242 The data stream portion of a Synch. This should always be accompanied by a TCP Urgent notification. Break 243 NVT character BRK. Interrupt Process 244 The function IP. Abort output 245 The function AO. Are You There 246 The function AYT. Erase character 247 The function EC. Erase Line 248 The function EL. Go ahead 249 The GA signal. SB 250 Indicates that what follows is subnegotiation of the indicated option. WILL (option code) 251 Indicates the desire to begin performing, or confirmation that you are now performing, the indicated option. WON'T (option code) 252 Indicates the refusal to perform, or continue performing, the indicated option. DO (option code) 253 Indicates the request that the other party perform, or confirmation that you are expecting the other party to perform, the indicated option. DON'T (option code) 254 Indicates the demand that the other party stop performing, or confirmation that you are no longer expecting the other party to perform, the indicated option. IAC 255 Data Byte 255.
</p>
<p class="UncategorizedText" id="baf04fc03397216bc5c2d23dfe7c0064">
Postel &amp; Reynolds [Page 14]
</p>
<p class="UncategorizedText" id="dbdbc9ccb4eb43f0662d1d4a6cf6cd95">
RFC 854 May 1983
</p>
<h1 class="Title" id="097c45b5f63f4cb89bf6aaaf0b0b01cf">
CONNECTION ESTABLISHMENT
</h1>
<p class="NarrativeText" id="de8010ce53b703fe83e9dd027c3264ac">
The TELNET TCP connection is established between the user's port U and the server's port L. The server listens on its well known port L for such connections. Since a TCP connection is full duplex and identified by the pair of ports, the server can engage in many simultaneous connections involving its port L and different user ports U.
</p>
<h1 class="Title" id="e2055fcd19ec409f75983808ba39938c">
Port Assignment
</h1>
<p class="NarrativeText" id="ad2ebe3284a43802d11f55db751ef4f5">
When used for remote user access to service hosts (i.e., remote terminal access) this protocol is assigned server port 23 (27 octal). That is L=23.
</p>
<p class="UncategorizedText" id="be8601eddd5c41bf4b3fd7f60a7ba764">
Postel &amp; Reynolds [Page 15]
</p>
</body>
</html>
File diff suppressed because one or more lines are too long